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
- ParameterElement.cs
- LoginName.cs
- LoginAutoFormat.cs
- WindowsIdentity.cs
- DiscoveryViaBehavior.cs
- TableCellAutomationPeer.cs
- VersionedStreamOwner.cs
- ReliabilityContractAttribute.cs
- FormsAuthenticationEventArgs.cs
- SqlProviderManifest.cs
- CurrentChangedEventManager.cs
- CodeBinaryOperatorExpression.cs
- SafeLibraryHandle.cs
- Win32Native.cs
- ImageFormatConverter.cs
- FrugalMap.cs
- CustomAttributeFormatException.cs
- StandardOleMarshalObject.cs
- SoapExtensionReflector.cs
- Baml2006ReaderFrame.cs
- QueryContinueDragEventArgs.cs
- XPathChildIterator.cs
- Reference.cs
- TextTreePropertyUndoUnit.cs
- UseLicense.cs
- TextEditorThreadLocalStore.cs
- SqlConnectionFactory.cs
- SqlProcedureAttribute.cs
- VolatileEnlistmentMultiplexing.cs
- IItemProperties.cs
- ConnectionManagementElementCollection.cs
- ControlValuePropertyAttribute.cs
- WebBrowserNavigatingEventHandler.cs
- FontInfo.cs
- SudsParser.cs
- Literal.cs
- DataControlFieldHeaderCell.cs
- Compiler.cs
- PeerEndPoint.cs
- BindingContext.cs
- MulticastNotSupportedException.cs
- BitmapEffect.cs
- WebConvert.cs
- Msec.cs
- VisualBasicExpressionConverter.cs
- CmsInterop.cs
- _NestedMultipleAsyncResult.cs
- AssemblyInfo.cs
- AccessKeyManager.cs
- Double.cs
- EmbeddedMailObjectsCollection.cs
- RequestTimeoutManager.cs
- XmlSchemaDatatype.cs
- StateWorkerRequest.cs
- QilBinary.cs
- StatusBarDrawItemEvent.cs
- MenuItemBindingCollection.cs
- DebugController.cs
- LinearQuaternionKeyFrame.cs
- PointHitTestParameters.cs
- TableCellAutomationPeer.cs
- ExpressionList.cs
- MediaElementAutomationPeer.cs
- ToolStripPanelCell.cs
- BindingMAnagerBase.cs
- DecimalKeyFrameCollection.cs
- FilteredReadOnlyMetadataCollection.cs
- PackageFilter.cs
- BinaryNode.cs
- DependencyObject.cs
- BufferedStream.cs
- NullableConverter.cs
- UIElement3DAutomationPeer.cs
- ProxyWebPartConnectionCollection.cs
- HttpHandlerActionCollection.cs
- CodeMethodReturnStatement.cs
- InstanceOwner.cs
- XpsPartBase.cs
- AutomationPatternInfo.cs
- TextEmbeddedObject.cs
- HtmlTableRow.cs
- StandardRuntimeEnumValidator.cs
- CollectionViewGroup.cs
- CombinedHttpChannel.cs
- SponsorHelper.cs
- WindowsStatusBar.cs
- TextParentUndoUnit.cs
- SqlDeflator.cs
- SynchronousChannel.cs
- Directory.cs
- ColumnMapCopier.cs
- ContextProperty.cs
- RepeaterItemEventArgs.cs
- CacheHelper.cs
- RenderOptions.cs
- EntityDataSourceDesignerHelper.cs
- WebContext.cs
- PersistenceProviderBehavior.cs
- DbProviderSpecificTypePropertyAttribute.cs
- TraceXPathNavigator.cs