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
- XmlSchemas.cs
- HGlobalSafeHandle.cs
- EventManager.cs
- Vector.cs
- GACMembershipCondition.cs
- PackagingUtilities.cs
- CodeMemberMethod.cs
- ServerIdentity.cs
- AuthenticationService.cs
- SqlReorderer.cs
- DynamicILGenerator.cs
- HostProtectionException.cs
- GridItemPatternIdentifiers.cs
- ConsoleCancelEventArgs.cs
- OpenFileDialog.cs
- EllipseGeometry.cs
- HtmlTableRow.cs
- XmlIlVisitor.cs
- TimeZone.cs
- SpnegoTokenAuthenticator.cs
- DesignerAutoFormat.cs
- ActivityTypeResolver.xaml.cs
- TypeDependencyAttribute.cs
- ViewLoader.cs
- InstanceNameConverter.cs
- connectionpool.cs
- XsltLoader.cs
- Pair.cs
- RepeaterItemEventArgs.cs
- BindingContext.cs
- SystemWebSectionGroup.cs
- DataTablePropertyDescriptor.cs
- HttpCacheParams.cs
- Queue.cs
- DiscoveryServerProtocol.cs
- ReadWriteSpinLock.cs
- SmtpSection.cs
- TextEditorDragDrop.cs
- WebControlToolBoxItem.cs
- InternalsVisibleToAttribute.cs
- XsdBuildProvider.cs
- Boolean.cs
- ValueUtilsSmi.cs
- DataSet.cs
- PolicyLevel.cs
- CompoundFileIOPermission.cs
- datacache.cs
- SoapAttributeAttribute.cs
- LogManagementAsyncResult.cs
- ValueType.cs
- HighlightComponent.cs
- DtcInterfaces.cs
- ScaleTransform.cs
- HyperLinkField.cs
- XsdCachingReader.cs
- Predicate.cs
- DataObject.cs
- ComponentResourceManager.cs
- LassoSelectionBehavior.cs
- XmlArrayAttribute.cs
- Rules.cs
- XmlILConstructAnalyzer.cs
- SizeValueSerializer.cs
- PreviewPrintController.cs
- CodeCompileUnit.cs
- SecurityDocument.cs
- ArrayConverter.cs
- VarInfo.cs
- MenuItem.cs
- ConfigurationManagerInternal.cs
- DmlSqlGenerator.cs
- SimpleType.cs
- SplineKeyFrames.cs
- WebPartConnectionsDisconnectVerb.cs
- EqualityArray.cs
- BitmapEffectvisualstate.cs
- UMPAttributes.cs
- Int32AnimationUsingKeyFrames.cs
- WSSecurityPolicy11.cs
- RawStylusInputCustomData.cs
- StylusPlugInCollection.cs
- WebPartActionVerb.cs
- Panel.cs
- ReturnEventArgs.cs
- ByteStorage.cs
- HttpBrowserCapabilitiesBase.cs
- PathStreamGeometryContext.cs
- DoubleLinkList.cs
- DispatcherProcessingDisabled.cs
- WindowsServiceElement.cs
- CellTreeNode.cs
- CompletedAsyncResult.cs
- WizardStepBase.cs
- Itemizer.cs
- VisualTreeHelper.cs
- XamlTemplateSerializer.cs
- WorkflowRuntimeServiceElement.cs
- InkPresenterAutomationPeer.cs
- GridViewCommandEventArgs.cs
- FormatterConverter.cs