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
- SrgsOneOf.cs
- VoiceObjectToken.cs
- NameValueConfigurationElement.cs
- SqlCrossApplyToCrossJoin.cs
- AutomationEventArgs.cs
- InkSerializer.cs
- ParameterToken.cs
- InvokePattern.cs
- DashStyles.cs
- NamespaceDisplay.xaml.cs
- NativeRecognizer.cs
- UIElement.cs
- ParseElement.cs
- VerificationAttribute.cs
- DecoderExceptionFallback.cs
- PeerInvitationResponse.cs
- Size3D.cs
- TemplateComponentConnector.cs
- MexNamedPipeBindingCollectionElement.cs
- CrossContextChannel.cs
- SiteIdentityPermission.cs
- MergePropertyDescriptor.cs
- _SslState.cs
- BaseInfoTable.cs
- DataSourceExpressionCollection.cs
- StyleReferenceConverter.cs
- TemplateXamlParser.cs
- _SSPISessionCache.cs
- RectangleGeometry.cs
- SqlCharStream.cs
- LinearKeyFrames.cs
- ClientSettingsStore.cs
- ConfigXmlWhitespace.cs
- CursorEditor.cs
- DataServiceQueryOfT.cs
- CfgArc.cs
- PenThreadPool.cs
- MediaEntryAttribute.cs
- LabelLiteral.cs
- BackStopAuthenticationModule.cs
- AlignmentXValidation.cs
- VectorCollectionValueSerializer.cs
- CellCreator.cs
- StringValidator.cs
- Vector3D.cs
- TextEffectCollection.cs
- BitmapFrameDecode.cs
- Utility.cs
- DateTimeConverter2.cs
- RtfToXamlReader.cs
- FixedSOMLineCollection.cs
- Context.cs
- UidPropertyAttribute.cs
- ProviderConnectionPoint.cs
- _UriSyntax.cs
- FontNamesConverter.cs
- MatrixTransform.cs
- StreamWithDictionary.cs
- NamedElement.cs
- StylusButton.cs
- VersionedStream.cs
- ListBox.cs
- CharUnicodeInfo.cs
- KnownBoxes.cs
- BitmapEffectrendercontext.cs
- WindowsButton.cs
- XamlSerializer.cs
- DefaultParameterValueAttribute.cs
- XPathParser.cs
- BuildManager.cs
- ProcessModelSection.cs
- FloatUtil.cs
- IPHostEntry.cs
- FormatException.cs
- ActivityMetadata.cs
- TextElement.cs
- Cursor.cs
- ContextInformation.cs
- MultidimensionalArrayItemReference.cs
- TextTrailingCharacterEllipsis.cs
- KnownIds.cs
- TransformProviderWrapper.cs
- MLangCodePageEncoding.cs
- ContentValidator.cs
- TreeNodeBindingCollection.cs
- XmlSchemaSubstitutionGroup.cs
- QilNode.cs
- LayoutEngine.cs
- VectorAnimationBase.cs
- XmlWhitespace.cs
- _TransmitFileOverlappedAsyncResult.cs
- DataContractSet.cs
- FieldMetadata.cs
- FormatSettings.cs
- CompilationLock.cs
- NameNode.cs
- HttpHeaderCollection.cs
- GridViewActionList.cs
- RetrieveVirtualItemEventArgs.cs
- IgnoreSectionHandler.cs