Code:
/ FX-1434 / FX-1434 / 1.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
- UriTemplateHelpers.cs
- WeakReadOnlyCollection.cs
- AddInStore.cs
- Label.cs
- PopOutPanel.cs
- ManualResetEventSlim.cs
- ProcessHostConfigUtils.cs
- AxHost.cs
- TabControl.cs
- XpsException.cs
- VisualTreeHelper.cs
- DbParameterCollectionHelper.cs
- PipeSecurity.cs
- RegistryPermission.cs
- TagMapInfo.cs
- RuntimeArgumentHandle.cs
- PrintPageEvent.cs
- Panel.cs
- EntityDescriptor.cs
- CatalogZone.cs
- HierarchicalDataSourceControl.cs
- AsyncDataRequest.cs
- QueryOpcode.cs
- ColorConverter.cs
- CriticalExceptions.cs
- XpsS0ValidatingLoader.cs
- ValidationErrorCollection.cs
- StatusBarDrawItemEvent.cs
- TextEffect.cs
- MouseOverProperty.cs
- OracleNumber.cs
- EdgeModeValidation.cs
- AccessorTable.cs
- ClonableStack.cs
- InfocardExtendedInformationCollection.cs
- PtsHost.cs
- SerializationStore.cs
- EncodingInfo.cs
- handlecollector.cs
- SortFieldComparer.cs
- ImageMapEventArgs.cs
- RSAPKCS1KeyExchangeDeformatter.cs
- TouchesOverProperty.cs
- DataSourceSelectArguments.cs
- CodeSnippetStatement.cs
- Span.cs
- OperationInvokerBehavior.cs
- DataSourceIDConverter.cs
- DataServiceQueryProvider.cs
- Rotation3DAnimation.cs
- TextServicesLoader.cs
- WindowsListViewItemCheckBox.cs
- DataColumnPropertyDescriptor.cs
- TypeExtension.cs
- InternalControlCollection.cs
- TdsParserStaticMethods.cs
- TheQuery.cs
- GroupDescription.cs
- AccessViolationException.cs
- ListViewTableRow.cs
- TokenBasedSetEnumerator.cs
- BrowserCapabilitiesFactoryBase.cs
- SymLanguageVendor.cs
- ComponentEvent.cs
- UnmanagedBitmapWrapper.cs
- DataGridViewDataErrorEventArgs.cs
- ConnectionManagementElement.cs
- SizeFConverter.cs
- BinaryWriter.cs
- EncryptedKey.cs
- Membership.cs
- PackageRelationshipCollection.cs
- ProfileService.cs
- FolderBrowserDialog.cs
- TranslateTransform.cs
- TCEAdapterGenerator.cs
- DataSourceControl.cs
- AssociationTypeEmitter.cs
- BufferedWebEventProvider.cs
- TextLineBreak.cs
- Clock.cs
- InstalledFontCollection.cs
- MethodImplAttribute.cs
- SamlAttributeStatement.cs
- TokenizerHelper.cs
- SemanticTag.cs
- DateTimeSerializationSection.cs
- MatrixAnimationUsingPath.cs
- ListViewEditEventArgs.cs
- ListViewAutomationPeer.cs
- DataGridViewRowsAddedEventArgs.cs
- ContextMenuStripGroup.cs
- MultilineStringConverter.cs
- Light.cs
- SafeMILHandle.cs
- WorkflowApplicationIdleEventArgs.cs
- CancelEventArgs.cs
- PtsHelper.cs
- InOutArgument.cs
- LookupNode.cs