Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / CompMod / System / Diagnostics / DelimitedListTraceListener.cs / 1305376 / 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
- PageSettings.cs
- Switch.cs
- EncryptedType.cs
- RouteItem.cs
- UnhandledExceptionEventArgs.cs
- SafeNativeMethods.cs
- ClientSettingsStore.cs
- DirectoryNotFoundException.cs
- StringStorage.cs
- UIElementHelper.cs
- FtpWebResponse.cs
- JournalEntry.cs
- ProvidePropertyAttribute.cs
- BlobPersonalizationState.cs
- FileInfo.cs
- WorkflowInvoker.cs
- ApplicationDirectory.cs
- SrgsGrammarCompiler.cs
- DataColumnPropertyDescriptor.cs
- ValuePatternIdentifiers.cs
- StylusPointPropertyInfoDefaults.cs
- PeerCollaborationPermission.cs
- InternalPermissions.cs
- FixedDocumentSequencePaginator.cs
- LifetimeServices.cs
- ChangeInterceptorAttribute.cs
- SqlInternalConnection.cs
- ConstrainedDataObject.cs
- FilteredXmlReader.cs
- AttachmentCollection.cs
- RuntimeHandles.cs
- GeometryCollection.cs
- ZipFileInfoCollection.cs
- LoopExpression.cs
- EntityConnection.cs
- BuildManager.cs
- XmlAttributeAttribute.cs
- Frame.cs
- CompilationSection.cs
- SqlNodeAnnotations.cs
- BaseTreeIterator.cs
- RestHandlerFactory.cs
- DataTableNewRowEvent.cs
- Membership.cs
- SemanticResolver.cs
- HtmlProps.cs
- DataGridViewColumnEventArgs.cs
- ToolStripContainer.cs
- AnnotationService.cs
- AuthenticationConfig.cs
- OciEnlistContext.cs
- SettingsPropertyValueCollection.cs
- querybuilder.cs
- SafeLibraryHandle.cs
- UIntPtr.cs
- control.ime.cs
- OnOperation.cs
- RealProxy.cs
- ModulesEntry.cs
- ThreadPool.cs
- Cursors.cs
- NullableDecimalSumAggregationOperator.cs
- TypeConverterHelper.cs
- _SslSessionsCache.cs
- Focus.cs
- Stacktrace.cs
- BufferedReceiveManager.cs
- ProfileParameter.cs
- PagerSettings.cs
- SortedDictionary.cs
- Queue.cs
- WindowsListView.cs
- RSAPKCS1SignatureDeformatter.cs
- MessageQueuePermission.cs
- InternalMappingException.cs
- AssemblyResourceLoader.cs
- NativeMethods.cs
- ButtonBaseAutomationPeer.cs
- NativeWindow.cs
- ReaderWriterLock.cs
- CurrentTimeZone.cs
- Matrix.cs
- GridView.cs
- ActiveDesignSurfaceEvent.cs
- DataSourceCacheDurationConverter.cs
- X509ChainElement.cs
- SkipStoryboardToFill.cs
- Parameter.cs
- NotSupportedException.cs
- CommandSet.cs
- ScaleTransform3D.cs
- IntellisenseTextBox.cs
- ControlPaint.cs
- FontWeight.cs
- MemoryStream.cs
- MapPathBasedVirtualPathProvider.cs
- TextTreeFixupNode.cs
- DrawToolTipEventArgs.cs
- ApplicationSecurityManager.cs
- DetailsViewDeletedEventArgs.cs