Code:
/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / whidbey / netfxsp / 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
// 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
- WebRequestModuleElementCollection.cs
- WebConfigurationFileMap.cs
- SoapFormatter.cs
- PrintingPermissionAttribute.cs
- OleTxTransactionInfo.cs
- UInt32Storage.cs
- XmlSchemaNotation.cs
- ColorTranslator.cs
- CategoryAttribute.cs
- TableAdapterManagerHelper.cs
- FontFamily.cs
- AttributeQuery.cs
- InfiniteIntConverter.cs
- HostProtectionPermission.cs
- FacetChecker.cs
- HtmlInputFile.cs
- ProxyManager.cs
- CalendarDay.cs
- PerformanceCounterPermissionEntryCollection.cs
- LookupBindingPropertiesAttribute.cs
- ModelTreeEnumerator.cs
- ManagedIStream.cs
- ServiceOperation.cs
- DuplicateWaitObjectException.cs
- AsymmetricAlgorithm.cs
- UnsafeNativeMethods.cs
- ResourcePermissionBaseEntry.cs
- Viewport3DAutomationPeer.cs
- FormsAuthenticationConfiguration.cs
- SynthesizerStateChangedEventArgs.cs
- StylusButtonCollection.cs
- CapabilitiesSection.cs
- EditingCommands.cs
- FunctionOverloadResolver.cs
- TypeSystem.cs
- CodeTypeParameterCollection.cs
- ColorContextHelper.cs
- BrushValueSerializer.cs
- ListViewEditEventArgs.cs
- DesignerAutoFormatCollection.cs
- TextRangeEdit.cs
- GroupLabel.cs
- BlobPersonalizationState.cs
- StringToken.cs
- SoapRpcServiceAttribute.cs
- FeatureSupport.cs
- WmpBitmapDecoder.cs
- BookmarkNameHelper.cs
- UITypeEditor.cs
- SubstitutionResponseElement.cs
- documentsequencetextview.cs
- UserControlCodeDomTreeGenerator.cs
- ExpressionTextBox.xaml.cs
- QueryStringParameter.cs
- Span.cs
- CollectionType.cs
- XmlResolver.cs
- EDesignUtil.cs
- WindowsFormsSectionHandler.cs
- SignerInfo.cs
- IncomingWebRequestContext.cs
- FlowDocumentPage.cs
- TrayIconDesigner.cs
- SqlClientFactory.cs
- RIPEMD160Managed.cs
- HtmlTableRowCollection.cs
- TreeNodeClickEventArgs.cs
- GridEntryCollection.cs
- DrawingCollection.cs
- HwndTarget.cs
- DeflateStream.cs
- MediaContextNotificationWindow.cs
- DecimalSumAggregationOperator.cs
- InheritanceAttribute.cs
- PartialTrustVisibleAssembly.cs
- basenumberconverter.cs
- ConfigXmlCDataSection.cs
- WebBrowsableAttribute.cs
- MarginCollapsingState.cs
- ViewService.cs
- FrameworkName.cs
- TextTreeInsertUndoUnit.cs
- ToolBarTray.cs
- DbDeleteCommandTree.cs
- ErrorsHelper.cs
- ToolStripSplitButton.cs
- FtpWebResponse.cs
- GroupItem.cs
- OpenTypeLayoutCache.cs
- UsernameTokenFactoryCredential.cs
- SignatureGenerator.cs
- ToolStripPanelRenderEventArgs.cs
- Cursors.cs
- RestHandlerFactory.cs
- ServiceControllerDesigner.cs
- FormsAuthenticationTicket.cs
- CompositeControl.cs
- ThemeInfoAttribute.cs
- ISAPIRuntime.cs
- SafeSecurityHelper.cs