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
- ThemeableAttribute.cs
- DeferredTextReference.cs
- BaseTemplateBuildProvider.cs
- InputLanguageCollection.cs
- LicFileLicenseProvider.cs
- MessageQueueTransaction.cs
- SQLRoleProvider.cs
- OutputCacheProfile.cs
- DataGridView.cs
- TrackingMemoryStreamFactory.cs
- PropertyFilterAttribute.cs
- SafePEFileHandle.cs
- PropertyManager.cs
- GetLedgerEntryForRecipientRequest.cs
- SpecialNameAttribute.cs
- IItemContainerGenerator.cs
- XmlConvert.cs
- EntityDataSourceDataSelectionPanel.designer.cs
- ProtocolState.cs
- EntityStoreSchemaGenerator.cs
- PropertyDescriptorCollection.cs
- ItemCollection.cs
- QueryableDataSourceEditData.cs
- CodeObjectCreateExpression.cs
- SqlAliasesReferenced.cs
- FixedPageProcessor.cs
- InteropDesigner.xaml.cs
- SID.cs
- KeyValuePair.cs
- Compiler.cs
- PipelineModuleStepContainer.cs
- SpotLight.cs
- LambdaCompiler.Address.cs
- SqlComparer.cs
- NullExtension.cs
- RectangleF.cs
- BaseCollection.cs
- SeparatorAutomationPeer.cs
- XmlElementCollection.cs
- StartUpEventArgs.cs
- SiteMapNodeCollection.cs
- RepeatButtonAutomationPeer.cs
- TextChange.cs
- CachedBitmap.cs
- ItemCheckedEvent.cs
- TagPrefixAttribute.cs
- ItemContainerGenerator.cs
- ContentHostHelper.cs
- LocalBuilder.cs
- DecoderReplacementFallback.cs
- HttpProfileGroupBase.cs
- ColumnMapTranslator.cs
- BaseTemplateCodeDomTreeGenerator.cs
- WorkflowPrinting.cs
- VScrollProperties.cs
- DesignerAttribute.cs
- SamlEvidence.cs
- log.cs
- TemplateLookupAction.cs
- ChtmlPageAdapter.cs
- OrderPreservingSpoolingTask.cs
- StateMachineExecutionState.cs
- ChangesetResponse.cs
- ValidatingReaderNodeData.cs
- ErrorFormatterPage.cs
- TimelineGroup.cs
- RequestResponse.cs
- NavigatingCancelEventArgs.cs
- ExpressionNormalizer.cs
- TransformValueSerializer.cs
- WebPartCloseVerb.cs
- XmlDownloadManager.cs
- XmlParserContext.cs
- WmlMobileTextWriter.cs
- DataContractSerializerOperationGenerator.cs
- HTTP_SERVICE_CONFIG_URLACL_PARAM.cs
- Separator.cs
- Timer.cs
- ScriptControlManager.cs
- SelectionProcessor.cs
- _IPv6Address.cs
- TextBlock.cs
- ResourceDictionaryCollection.cs
- PerformanceCounterCategory.cs
- DependencyPropertyConverter.cs
- odbcmetadatacolumnnames.cs
- TextRangeEditLists.cs
- AssertValidation.cs
- LocalizationComments.cs
- MaskPropertyEditor.cs
- GridViewColumnHeaderAutomationPeer.cs
- HwndKeyboardInputProvider.cs
- ObjectDisposedException.cs
- KeyNotFoundException.cs
- DefaultMemberAttribute.cs
- PermissionListSet.cs
- ProtocolInformationReader.cs
- Graphics.cs
- HttpAsyncResult.cs
- ApplicationCommands.cs