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
- Processor.cs
- RecipientInfo.cs
- SchemaCollectionPreprocessor.cs
- XmlObjectSerializerContext.cs
- DataGridItem.cs
- ApplicationBuildProvider.cs
- SchemaHelper.cs
- RecordConverter.cs
- LinqDataSourceDeleteEventArgs.cs
- SettingsAttributeDictionary.cs
- VariableExpressionConverter.cs
- CharUnicodeInfo.cs
- AccessDataSource.cs
- PointLight.cs
- SourceFilter.cs
- mactripleDES.cs
- URIFormatException.cs
- ResourceBinder.cs
- WebPartAuthorizationEventArgs.cs
- COM2ExtendedUITypeEditor.cs
- ConfigurationElementProperty.cs
- PermissionSet.cs
- CodeDefaultValueExpression.cs
- SizeChangedEventArgs.cs
- RestClientProxyHandler.cs
- MenuItemStyle.cs
- DataServiceProviderMethods.cs
- XamlReader.cs
- EncoderNLS.cs
- DataBinding.cs
- StructuredTypeEmitter.cs
- MessageBox.cs
- TemplatedWizardStep.cs
- CodeGenerator.cs
- mediaeventargs.cs
- WebPartDescriptionCollection.cs
- _UriTypeConverter.cs
- MinimizableAttributeTypeConverter.cs
- QuaternionKeyFrameCollection.cs
- TypeDescriptionProviderAttribute.cs
- CodeObject.cs
- DatatypeImplementation.cs
- CompilerParameters.cs
- XmlAttributeProperties.cs
- GeometryCombineModeValidation.cs
- JournalEntry.cs
- DependentTransaction.cs
- ComponentEvent.cs
- XmlSignificantWhitespace.cs
- SecurityProtocol.cs
- XLinq.cs
- ToolStripCodeDomSerializer.cs
- SafeReversePInvokeHandle.cs
- RedirectionProxy.cs
- DataGridViewRowErrorTextNeededEventArgs.cs
- FontWeight.cs
- TraceShell.cs
- DataGridLinkButton.cs
- BaseDataBoundControl.cs
- WebPartCollection.cs
- WebPartConnectionsDisconnectVerb.cs
- Attributes.cs
- ProfilePropertySettings.cs
- ItemsControlAutomationPeer.cs
- SupportsEventValidationAttribute.cs
- PropertyPathWorker.cs
- DateTimeOffset.cs
- SafeHandles.cs
- TextEffectResolver.cs
- RtfNavigator.cs
- PenContexts.cs
- PropertyValueChangedEvent.cs
- TemplateComponentConnector.cs
- XmlSchemaComplexType.cs
- SHA1CryptoServiceProvider.cs
- DispatcherHookEventArgs.cs
- DetailsViewUpdatedEventArgs.cs
- AtlasWeb.Designer.cs
- UnsafeNativeMethods.cs
- LoadRetryAsyncResult.cs
- SymmetricAlgorithm.cs
- DbConnectionOptions.cs
- RectValueSerializer.cs
- PrimarySelectionAdorner.cs
- DataContractSerializerMessageContractImporter.cs
- QueryOutputWriterV1.cs
- EventSetter.cs
- GroupQuery.cs
- HMACSHA256.cs
- SeparatorAutomationPeer.cs
- PropertyDescriptorGridEntry.cs
- KnownTypesProvider.cs
- _AutoWebProxyScriptEngine.cs
- WindowsPrincipal.cs
- TraceSection.cs
- XmlnsDictionary.cs
- TextParagraph.cs
- BinaryFormatterWriter.cs
- ObfuscateAssemblyAttribute.cs
- TextRenderingModeValidation.cs