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
- WebPartCloseVerb.cs
- ImageAttributes.cs
- QilName.cs
- TreeViewCancelEvent.cs
- SourceFileBuildProvider.cs
- HtmlLabelAdapter.cs
- CapabilitiesSection.cs
- HttpHandlersSection.cs
- AutomationPeer.cs
- SiteMapDataSourceView.cs
- CheckBoxFlatAdapter.cs
- WCFBuildProvider.cs
- XamlStream.cs
- Line.cs
- BrushMappingModeValidation.cs
- streamingZipPartStream.cs
- StreamGeometry.cs
- ApplicationManager.cs
- dataprotectionpermissionattribute.cs
- CapabilitiesUse.cs
- DecimalConstantAttribute.cs
- StringSorter.cs
- DataGridRowHeader.cs
- Vector3DAnimationUsingKeyFrames.cs
- SettingsContext.cs
- ConfigsHelper.cs
- PersistenceTypeAttribute.cs
- StringConverter.cs
- RtfToXamlLexer.cs
- ProfileGroupSettings.cs
- ErasingStroke.cs
- SerializerWriterEventHandlers.cs
- arc.cs
- PrimitiveDataContract.cs
- DocumentSequence.cs
- TextParagraphProperties.cs
- UnsafeNativeMethods.cs
- TriggerBase.cs
- EntityUtil.cs
- LowerCaseStringConverter.cs
- Message.cs
- SafeFileMappingHandle.cs
- ListItem.cs
- ToolStripItemCollection.cs
- IdentityHolder.cs
- versioninfo.cs
- InvokeHandlers.cs
- PopOutPanel.cs
- IndependentlyAnimatedPropertyMetadata.cs
- Int32Converter.cs
- SafeViewOfFileHandle.cs
- TaiwanLunisolarCalendar.cs
- ConsumerConnectionPoint.cs
- DateTimeFormatInfoScanner.cs
- DataTableMapping.cs
- QueryPageSettingsEventArgs.cs
- PolicyLevel.cs
- ErrorFormatter.cs
- CollectionContainer.cs
- DoubleLink.cs
- LabelLiteral.cs
- SafeSystemMetrics.cs
- NullableLongMinMaxAggregationOperator.cs
- IndependentAnimationStorage.cs
- Point3DAnimationUsingKeyFrames.cs
- Documentation.cs
- RelationshipEndCollection.cs
- SliderAutomationPeer.cs
- DirectionalLight.cs
- DesignerAdRotatorAdapter.cs
- EntityDataSourceWizardForm.cs
- ControlParser.cs
- CollectionBuilder.cs
- UnorderedHashRepartitionStream.cs
- OperandQuery.cs
- SqlServices.cs
- ButtonRenderer.cs
- File.cs
- HexParser.cs
- StaticExtension.cs
- Pen.cs
- _FixedSizeReader.cs
- Stylus.cs
- SqlXml.cs
- InternalBufferOverflowException.cs
- WinInetCache.cs
- NonVisualControlAttribute.cs
- RepeatInfo.cs
- XamlBrushSerializer.cs
- PbrsForward.cs
- EntityDataSource.cs
- SoapExtensionTypeElementCollection.cs
- DataGridViewCellValidatingEventArgs.cs
- ModifiableIteratorCollection.cs
- SqlProfileProvider.cs
- MouseGestureValueSerializer.cs
- XPathQilFactory.cs
- TransactedBatchingElement.cs
- SqlXml.cs
- BitStack.cs