Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / CompMod / System / Diagnostics / DelimitedListTraceListener.cs / 1305376 / 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
- EventsTab.cs
- PeerContact.cs
- WebServiceMethodData.cs
- TypeBuilderInstantiation.cs
- CalendarTable.cs
- TreeIterators.cs
- ProxyWebPartConnectionCollection.cs
- ListViewGroupConverter.cs
- DataKeyCollection.cs
- AdapterDictionary.cs
- Propagator.JoinPropagator.cs
- DataContext.cs
- DocumentXPathNavigator.cs
- formatstringdialog.cs
- SingleAnimationUsingKeyFrames.cs
- PersonalizationDictionary.cs
- followingsibling.cs
- DrawingImage.cs
- EmptyStringExpandableObjectConverter.cs
- XmlRawWriter.cs
- RolePrincipal.cs
- UndoEngine.cs
- RadialGradientBrush.cs
- ValueTypeFixupInfo.cs
- SqlParameterizer.cs
- SafeNativeMethods.cs
- ExpressionCopier.cs
- EventProvider.cs
- XmlSchemaCollection.cs
- Bezier.cs
- TransformerInfo.cs
- CertificateReferenceElement.cs
- DataContext.cs
- PointCollection.cs
- RequiredFieldValidator.cs
- DataSourceCacheDurationConverter.cs
- EmbeddedMailObjectsCollection.cs
- EventKeyword.cs
- Query.cs
- PropertyDescriptorGridEntry.cs
- MissingMethodException.cs
- OleDbConnectionInternal.cs
- SetIterators.cs
- DataGridColumnCollection.cs
- DataSourceView.cs
- IsolatedStorageSecurityState.cs
- BlurEffect.cs
- ThreadExceptionEvent.cs
- CSharpCodeProvider.cs
- ServerIdentity.cs
- XPathCompileException.cs
- NoneExcludedImageIndexConverter.cs
- EntityKeyElement.cs
- ManifestResourceInfo.cs
- WebPartHelpVerb.cs
- ConsoleKeyInfo.cs
- CorrelationScope.cs
- StsCommunicationException.cs
- HttpValueCollection.cs
- ProjectionRewriter.cs
- SingleKeyFrameCollection.cs
- PreviewControlDesigner.cs
- Column.cs
- ConfigurationSectionCollection.cs
- UdpAnnouncementEndpoint.cs
- WebContext.cs
- MouseGestureConverter.cs
- OptimizedTemplateContentHelper.cs
- ZipIOExtraFieldElement.cs
- VersionedStream.cs
- SpecularMaterial.cs
- TimeSpan.cs
- MetadataPropertyAttribute.cs
- IsolatedStorageFilePermission.cs
- DesignTimeResourceProviderFactoryAttribute.cs
- UIElement3DAutomationPeer.cs
- XmlSchemaAppInfo.cs
- ContactManager.cs
- TemplateBuilder.cs
- ActivitySurrogateSelector.cs
- TextTreeDeleteContentUndoUnit.cs
- MimeObjectFactory.cs
- TextElement.cs
- FixedDocumentPaginator.cs
- EventsTab.cs
- DataServiceQuery.cs
- CursorConverter.cs
- Point3DCollectionValueSerializer.cs
- AdornerLayer.cs
- RadioButton.cs
- NameValueConfigurationElement.cs
- ListViewDeletedEventArgs.cs
- DictionaryEditChange.cs
- ValidationError.cs
- SqlDataReaderSmi.cs
- NegotiateStream.cs
- EdmFunction.cs
- AutomationElement.cs
- CounterSampleCalculator.cs