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
- RuleElement.cs
- TextTreePropertyUndoUnit.cs
- SessionEndingCancelEventArgs.cs
- BindingList.cs
- ApplicationInfo.cs
- WindowProviderWrapper.cs
- LingerOption.cs
- WithParamAction.cs
- WebPartActionVerb.cs
- HostedTransportConfigurationBase.cs
- SqlError.cs
- RecordsAffectedEventArgs.cs
- LogEntrySerialization.cs
- xmlfixedPageInfo.cs
- FaultCode.cs
- BooleanAnimationUsingKeyFrames.cs
- RTLAwareMessageBox.cs
- documentsequencetextcontainer.cs
- CodeLinePragma.cs
- HttpDictionary.cs
- XmlQueryStaticData.cs
- ExpressionList.cs
- MultiBinding.cs
- StylusCaptureWithinProperty.cs
- PlanCompiler.cs
- AggregateNode.cs
- HtmlUtf8RawTextWriter.cs
- _DigestClient.cs
- DiagnosticsConfiguration.cs
- CustomTypeDescriptor.cs
- ExchangeUtilities.cs
- ParallelForEach.cs
- Win32Exception.cs
- HexParser.cs
- TypeDescriptionProvider.cs
- ActiveXHelper.cs
- FormatException.cs
- PublishLicense.cs
- PeerToPeerException.cs
- DataGridViewIntLinkedList.cs
- ModulesEntry.cs
- TableParaClient.cs
- AssemblyFilter.cs
- DataReceivedEventArgs.cs
- UiaCoreProviderApi.cs
- XmlArrayItemAttribute.cs
- RenamedEventArgs.cs
- ToolTip.cs
- MetricEntry.cs
- SignedInfo.cs
- UpdateTranslator.cs
- TextServicesCompartment.cs
- HitTestDrawingContextWalker.cs
- ColumnClickEvent.cs
- SecurityException.cs
- CaseCqlBlock.cs
- ContextMenu.cs
- VirtualPathProvider.cs
- TraceContextRecord.cs
- EvidenceBase.cs
- FontCollection.cs
- WebCategoryAttribute.cs
- Selector.cs
- MetadataUtilsSmi.cs
- SecurityCriticalDataForSet.cs
- RMEnrollmentPage3.cs
- TemplatedMailWebEventProvider.cs
- GregorianCalendar.cs
- RegexGroupCollection.cs
- BitmapMetadataEnumerator.cs
- ContainerSelectorGlyph.cs
- CancelRequestedQuery.cs
- Figure.cs
- XmlHierarchyData.cs
- WinFormsSpinner.cs
- XmlName.cs
- NavigationPropertyEmitter.cs
- FixedSOMContainer.cs
- WsdlEndpointConversionContext.cs
- Int16AnimationBase.cs
- SettingsAttributes.cs
- DesignTimeVisibleAttribute.cs
- SudsParser.cs
- ConfigurationLockCollection.cs
- TextureBrush.cs
- RegexTree.cs
- SID.cs
- MatcherBuilder.cs
- ContractListAdapter.cs
- CodeComment.cs
- PathGeometry.cs
- PasswordBox.cs
- ConfigurationPermission.cs
- AQNBuilder.cs
- ImageDrawing.cs
- SecurityContext.cs
- COM2IPerPropertyBrowsingHandler.cs
- PluralizationService.cs
- ToolTipAutomationPeer.cs
- NameNode.cs