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
- BasicExpressionVisitor.cs
- WindowsGraphicsCacheManager.cs
- ActivityCodeDomReferenceService.cs
- AvTraceDetails.cs
- ServiceRouteHandler.cs
- WebPartEventArgs.cs
- FileUpload.cs
- ControllableStoryboardAction.cs
- AssemblyHash.cs
- _AcceptOverlappedAsyncResult.cs
- WebRequestModuleElement.cs
- BamlResourceDeserializer.cs
- XmlnsDefinitionAttribute.cs
- ListenerElementsCollection.cs
- ExpressionBuilderContext.cs
- ArraySegment.cs
- FontUnit.cs
- ColorTranslator.cs
- RowToParametersTransformer.cs
- TextViewSelectionProcessor.cs
- AddInActivator.cs
- NullRuntimeConfig.cs
- HttpGetServerProtocol.cs
- ItemChangedEventArgs.cs
- HitTestDrawingContextWalker.cs
- PasswordDeriveBytes.cs
- ReflectionUtil.cs
- ReadWriteControlDesigner.cs
- ConfigDefinitionUpdates.cs
- ServiceNameElement.cs
- PropertyConverter.cs
- SortDescription.cs
- BaseValidator.cs
- List.cs
- InfoCardRSAOAEPKeyExchangeDeformatter.cs
- SqlNotificationEventArgs.cs
- SafeNativeMethods.cs
- GenericWebPart.cs
- Zone.cs
- ParsedAttributeCollection.cs
- DependencyObjectPropertyDescriptor.cs
- OutputScope.cs
- Comparer.cs
- PenContexts.cs
- FlowDocumentPaginator.cs
- Form.cs
- QuerySubExprEliminator.cs
- ClientSettingsSection.cs
- SyndicationElementExtension.cs
- HandlerFactoryCache.cs
- CharEntityEncoderFallback.cs
- WinHttpWebProxyFinder.cs
- MetadataArtifactLoaderComposite.cs
- SessionSymmetricMessageSecurityProtocolFactory.cs
- CodeEventReferenceExpression.cs
- Module.cs
- MouseActionValueSerializer.cs
- BamlBinaryReader.cs
- EntityDataSourceContextDisposingEventArgs.cs
- DependsOnAttribute.cs
- PinnedBufferMemoryStream.cs
- XamlReader.cs
- VolatileEnlistmentState.cs
- DirectoryObjectSecurity.cs
- ThreadSafeList.cs
- PropertyItem.cs
- CachingHintValidation.cs
- smtpconnection.cs
- CharacterHit.cs
- PagesChangedEventArgs.cs
- WebSysDescriptionAttribute.cs
- ScrollProviderWrapper.cs
- InfoCardCryptoHelper.cs
- SmtpSpecifiedPickupDirectoryElement.cs
- CommandLibraryHelper.cs
- DataTableMappingCollection.cs
- CustomAttribute.cs
- BookmarkUndoUnit.cs
- CorrelationExtension.cs
- AddInSegmentDirectoryNotFoundException.cs
- HandlerWithFactory.cs
- FileLogRecord.cs
- ExtendedPropertiesHandler.cs
- InvalidCommandTreeException.cs
- FrameworkTemplate.cs
- HashStream.cs
- SymmetricKeyWrap.cs
- ReadOnlyCollectionBuilder.cs
- FormsAuthenticationCredentials.cs
- QilStrConcatenator.cs
- EntityDescriptor.cs
- CloudCollection.cs
- CircleEase.cs
- RelatedPropertyManager.cs
- DbProviderManifest.cs
- XsltException.cs
- SweepDirectionValidation.cs
- CookieProtection.cs
- BuildManager.cs
- DataConnectionHelper.cs