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
- XamlToRtfWriter.cs
- VectorAnimationUsingKeyFrames.cs
- XmlEntityReference.cs
- CustomLineCap.cs
- PointLight.cs
- ToolStripArrowRenderEventArgs.cs
- VirtualDirectoryMappingCollection.cs
- SQLConvert.cs
- CodeAttributeArgument.cs
- EventWaitHandle.cs
- TemplateColumn.cs
- XmlDataSource.cs
- NamedPermissionSet.cs
- DataControlFieldHeaderCell.cs
- Column.cs
- ISessionStateStore.cs
- Border.cs
- AttachInfo.cs
- AsymmetricSignatureDeformatter.cs
- FormViewDeletedEventArgs.cs
- IProducerConsumerCollection.cs
- CanonicalXml.cs
- DataGridViewAccessibleObject.cs
- Privilege.cs
- URLIdentityPermission.cs
- ConfigurationManagerHelperFactory.cs
- CustomErrorsSection.cs
- ColorConverter.cs
- RTTrackingProfile.cs
- _KerberosClient.cs
- KeysConverter.cs
- SEHException.cs
- StylusCollection.cs
- HandledMouseEvent.cs
- IssuedTokenClientBehaviorsElement.cs
- DeclarativeCatalogPart.cs
- ObjectItemCollection.cs
- NamedPipeTransportBindingElement.cs
- DBDataPermission.cs
- SafeRightsManagementSessionHandle.cs
- ITextView.cs
- EventListenerClientSide.cs
- SafeViewOfFileHandle.cs
- ModulesEntry.cs
- OneOfScalarConst.cs
- AutoCompleteStringCollection.cs
- TranslateTransform.cs
- ToolTip.cs
- ImageAutomationPeer.cs
- HtmlInputButton.cs
- DoubleCollectionConverter.cs
- RegexFCD.cs
- Completion.cs
- BinaryWriter.cs
- ExpressionPrefixAttribute.cs
- GraphicsContext.cs
- QuestionEventArgs.cs
- Timer.cs
- BrushMappingModeValidation.cs
- OleDbMetaDataFactory.cs
- IPipelineRuntime.cs
- BamlReader.cs
- SiteIdentityPermission.cs
- XsltFunctions.cs
- CommandPlan.cs
- SymLanguageVendor.cs
- CriticalFinalizerObject.cs
- SplashScreenNativeMethods.cs
- NumericUpDown.cs
- WriteTimeStream.cs
- PersonalizableTypeEntry.cs
- BrushValueSerializer.cs
- ArraySortHelper.cs
- SqlCommandSet.cs
- TimeStampChecker.cs
- Range.cs
- TableItemPattern.cs
- DBSchemaTable.cs
- TriggerCollection.cs
- EditorAttribute.cs
- SamlAttribute.cs
- TimeSpanMinutesOrInfiniteConverter.cs
- RedistVersionInfo.cs
- FrameworkContentElementAutomationPeer.cs
- WindowsIPAddress.cs
- ObjectItemCollectionAssemblyCacheEntry.cs
- ToolStripSeparator.cs
- PointLightBase.cs
- DetailsViewUpdatedEventArgs.cs
- SizeConverter.cs
- AsymmetricKeyExchangeDeformatter.cs
- TransactionTable.cs
- FilteredAttributeCollection.cs
- DataGridLinkButton.cs
- DashStyles.cs
- DynamicDiscoveryDocument.cs
- XmlILOptimizerVisitor.cs
- RefreshEventArgs.cs
- FirstMatchCodeGroup.cs
- ExpressionDumper.cs