Code:
/ DotNET / DotNET / 8.0 / untmp / whidbey / REDBITS / ndp / fx / src / CompMod / System / Diagnostics / DelimitedListTraceListener.cs / 1 / DelimitedListTraceListener.cs
//------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //----------------------------------------------------------------------------- using System; using System.Text; using System.Globalization; using System.IO; using System.Collections; using System.Security.Permissions; using System.Runtime.Versioning; namespace System.Diagnostics { [HostProtection(Synchronization=true)] public class DelimitedListTraceListener : TextWriterTraceListener { string delimiter = ";"; string secondaryDelim = ","; bool initializedDelim = false; public DelimitedListTraceListener(Stream stream) : base(stream) { } public DelimitedListTraceListener(Stream stream, string name) : base(stream, name) { } public DelimitedListTraceListener(TextWriter writer) : base(writer) { } public DelimitedListTraceListener(TextWriter writer, string name) : base(writer, name) { } [ResourceExposure(ResourceScope.Machine)] [ResourceConsumption(ResourceScope.Machine)] public DelimitedListTraceListener(string fileName) : base (fileName) { } [ResourceExposure(ResourceScope.Machine)] [ResourceConsumption(ResourceScope.Machine)] public DelimitedListTraceListener(string fileName, string name) : base(fileName, name) { } public string Delimiter { get { lock(this) { // Probably overkill if (!initializedDelim) { if (Attributes.ContainsKey("delimiter")) delimiter = Attributes["delimiter"]; initializedDelim = true; } } return delimiter; } set { if (value == null) throw new ArgumentNullException("Delimiter"); if (value.Length == 0) throw new ArgumentException(SR.GetString("Generic_ArgCantBeEmptyString", "Delimiter")); lock(this) { delimiter = value; initializedDelim = true; } if (delimiter == ",") secondaryDelim = ";"; else secondaryDelim = ","; } } protected override internal string[] GetSupportedAttributes() { return new String[]{"delimiter"}; } public override void TraceEvent(TraceEventCache eventCache, String source, TraceEventType eventType, int id, string format, params object[] args) { if (Filter != null && !Filter.ShouldTrace(eventCache, source, eventType, id, format, args)) return; WriteHeader(source, eventType, id); if (args != null) WriteEscaped(String.Format(CultureInfo.InvariantCulture, format, args)); else WriteEscaped(format); Write(Delimiter); // Use get_Delimiter // one more delimiter for the data object Write(Delimiter); // Use get_Delimiter WriteFooter(eventCache); } public override void TraceEvent(TraceEventCache eventCache, String source, TraceEventType eventType, int id, string message) { if (Filter != null && !Filter.ShouldTrace(eventCache, source, eventType, id, message)) return; WriteHeader(source, eventType, id); WriteEscaped(message); Write(Delimiter); // Use get_Delimiter // one more delimiter for the data object Write(Delimiter); // Use get_Delimiter WriteFooter(eventCache); } public override void TraceData(TraceEventCache eventCache, String source, TraceEventType eventType, int id, object data) { if (Filter != null && !Filter.ShouldTrace(eventCache, source, eventType, id, null, null, data)) return; WriteHeader(source, eventType, id); // first a delimiter for the message Write(Delimiter); // Use get_Delimiter WriteEscaped(data.ToString()); Write(Delimiter); // Use get_Delimiter WriteFooter(eventCache); } public override void TraceData(TraceEventCache eventCache, String source, TraceEventType eventType, int id, params object[] data) { if (Filter != null && !Filter.ShouldTrace(eventCache, source, eventType, id, null, null, null, data)) return; WriteHeader(source, eventType, id); // first a delimiter for the message Write(Delimiter); // Use get_Delimiter if (data != null) { for (int i=0; i
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- XmlSchemaAny.cs
- SystemMulticastIPAddressInformation.cs
- WebPartEditorOkVerb.cs
- SvcMapFileLoader.cs
- ToolStripContentPanelRenderEventArgs.cs
- Decimal.cs
- DeviceFiltersSection.cs
- DetailsViewRowCollection.cs
- SQLConvert.cs
- ShapeTypeface.cs
- Pair.cs
- WindowsEditBoxRange.cs
- JsonFormatGeneratorStatics.cs
- EmissiveMaterial.cs
- SoapParser.cs
- ObjectStateEntryDbDataRecord.cs
- XmlSortKey.cs
- RpcResponse.cs
- OrderingQueryOperator.cs
- SqlDelegatedTransaction.cs
- ChtmlPageAdapter.cs
- RequiredAttributeAttribute.cs
- JoinElimination.cs
- NonBatchDirectoryCompiler.cs
- PerformanceCounterPermission.cs
- XmlSerializerFactory.cs
- XhtmlBasicLiteralTextAdapter.cs
- ElementHostAutomationPeer.cs
- ServiceBusyException.cs
- SynchronizationContextHelper.cs
- DataListItemCollection.cs
- TextTreeTextBlock.cs
- ElementAtQueryOperator.cs
- TypeContext.cs
- Quaternion.cs
- CssClassPropertyAttribute.cs
- _PooledStream.cs
- ListControl.cs
- FunctionDescription.cs
- XmlCountingReader.cs
- ObjectSelectorEditor.cs
- updatecommandorderer.cs
- DynamicDataResources.Designer.cs
- WebExceptionStatus.cs
- XmlNodeReader.cs
- FaultCode.cs
- DrawingContextWalker.cs
- HitTestWithPointDrawingContextWalker.cs
- EdmSchemaAttribute.cs
- HtmlInputImage.cs
- StatusBarDrawItemEvent.cs
- GatewayDefinition.cs
- SymbolEqualComparer.cs
- PriorityQueue.cs
- PageCache.cs
- EditingMode.cs
- GridView.cs
- ResourceManagerWrapper.cs
- RegexGroup.cs
- Translator.cs
- TreeNodeMouseHoverEvent.cs
- Keywords.cs
- StateMachineSubscription.cs
- CaseExpr.cs
- TableProviderWrapper.cs
- TrackingQueryElement.cs
- Logging.cs
- TextDecorationCollectionConverter.cs
- GridViewRowCollection.cs
- DbParameterCollection.cs
- WorkflowPersistenceContext.cs
- ResourceContainer.cs
- ColorTransform.cs
- RangeValidator.cs
- WindowsNonControl.cs
- Listen.cs
- CodeBlockBuilder.cs
- InkPresenter.cs
- FuncCompletionCallbackWrapper.cs
- RowTypePropertyElement.cs
- DataSourceXmlSubItemAttribute.cs
- WebPartsPersonalization.cs
- MetabaseServerConfig.cs
- SmiRequestExecutor.cs
- DocumentViewerConstants.cs
- PageHandlerFactory.cs
- SqlProviderServices.cs
- Queue.cs
- CircleHotSpot.cs
- SizeValueSerializer.cs
- Rect.cs
- UnaryOperationBinder.cs
- StateMachineWorkflowInstance.cs
- RequestTimeoutManager.cs
- SchemaMapping.cs
- Stylus.cs
- EffectiveValueEntry.cs
- TraceHandlerErrorFormatter.cs
- HtmlTable.cs
- AssemblyAttributesGoHere.cs