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
- TypedElement.cs
- WebPartHeaderCloseVerb.cs
- FixedDocumentPaginator.cs
- NullableDoubleAverageAggregationOperator.cs
- SolidColorBrush.cs
- ContentFileHelper.cs
- UnmanagedHandle.cs
- ContextBase.cs
- XmlSortKeyAccumulator.cs
- DataServiceExpressionVisitor.cs
- SqlConnectionString.cs
- HttpWebRequest.cs
- TemplateField.cs
- HttpFileCollection.cs
- GPStream.cs
- WorkflowApplicationAbortedException.cs
- ProcessModelInfo.cs
- ObjectTypeMapping.cs
- DataServiceContext.cs
- RenderTargetBitmap.cs
- ToolStripItemRenderEventArgs.cs
- BamlRecordReader.cs
- ResetableIterator.cs
- TypeDependencyAttribute.cs
- XmlSchemaImporter.cs
- Directory.cs
- RequestCachePolicyConverter.cs
- RotateTransform3D.cs
- XmlEventCache.cs
- OracleConnectionStringBuilder.cs
- ReflectionPermission.cs
- MD5.cs
- TrustManagerMoreInformation.cs
- PolyQuadraticBezierSegment.cs
- MetabaseServerConfig.cs
- HierarchicalDataBoundControl.cs
- ADConnectionHelper.cs
- CaseInsensitiveHashCodeProvider.cs
- MatrixAnimationBase.cs
- MultiPartWriter.cs
- XmlSequenceWriter.cs
- DetailsViewPagerRow.cs
- FramingDecoders.cs
- ValidationErrorInfo.cs
- ValueConversionAttribute.cs
- XmlCharType.cs
- ByteAnimationBase.cs
- GridViewColumn.cs
- XslCompiledTransform.cs
- SQLUtility.cs
- ActiveDocumentEvent.cs
- TextServicesCompartmentContext.cs
- DocumentSequence.cs
- XmlQueryStaticData.cs
- XPathDocumentNavigator.cs
- PointConverter.cs
- XPathException.cs
- EntitySetBaseCollection.cs
- Utils.cs
- VariantWrapper.cs
- shaperfactoryquerycacheentry.cs
- Substitution.cs
- ServiceDesigner.cs
- JpegBitmapDecoder.cs
- XmlSchemaComplexType.cs
- XPathItem.cs
- PointCollectionValueSerializer.cs
- DataGridViewTextBoxColumn.cs
- AbstractSvcMapFileLoader.cs
- WebPartCatalogAddVerb.cs
- StrokeFIndices.cs
- ScrollChrome.cs
- XmlSchemaAnyAttribute.cs
- SqlReferenceCollection.cs
- XpsS0ValidatingLoader.cs
- DataGridSortCommandEventArgs.cs
- SourceItem.cs
- SqlBooleanizer.cs
- ReliableMessagingVersionConverter.cs
- HitTestParameters3D.cs
- AuthenticateEventArgs.cs
- HtmlTableCell.cs
- ArithmeticException.cs
- UseManagedPresentationBindingElementImporter.cs
- ProviderBase.cs
- TimeoutValidationAttribute.cs
- HandoffBehavior.cs
- StringDictionary.cs
- OleDbRowUpdatingEvent.cs
- MobileCategoryAttribute.cs
- HelloMessageApril2005.cs
- bidPrivateBase.cs
- ListChangedEventArgs.cs
- RegexCaptureCollection.cs
- InplaceBitmapMetadataWriter.cs
- CommandBinding.cs
- EventLogEntry.cs
- CreateUserWizardStep.cs
- ReverseInheritProperty.cs
- HebrewNumber.cs