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
- LoginDesignerUtil.cs
- ValueQuery.cs
- DataServiceQueryException.cs
- Errors.cs
- DocumentOutline.cs
- ConfigurationManagerInternalFactory.cs
- DisposableCollectionWrapper.cs
- XmlAnyElementAttribute.cs
- DefaultHttpHandler.cs
- InputQueue.cs
- PagerSettings.cs
- IxmlLineInfo.cs
- Psha1DerivedKeyGenerator.cs
- UIElement3D.cs
- Bits.cs
- ControlParameter.cs
- SchemaNamespaceManager.cs
- ToggleButton.cs
- PrimitiveSchema.cs
- CacheDict.cs
- ScriptServiceAttribute.cs
- DataDocumentXPathNavigator.cs
- TableRow.cs
- XmlReaderSettings.cs
- ProcessHostMapPath.cs
- TextEditorTables.cs
- CodeExporter.cs
- QilParameter.cs
- XamlFilter.cs
- CursorConverter.cs
- RootNamespaceAttribute.cs
- WindowsToolbar.cs
- ResetableIterator.cs
- SqlFactory.cs
- WebDescriptionAttribute.cs
- FixUpCollection.cs
- WorkflowFileItem.cs
- DesignerWebPartChrome.cs
- CodeCatchClause.cs
- HotSpot.cs
- WinEventTracker.cs
- Error.cs
- ControlCachePolicy.cs
- PartialTrustVisibleAssembliesSection.cs
- _HeaderInfoTable.cs
- ImageBrush.cs
- BuildManager.cs
- AuthenticateEventArgs.cs
- StyleSelector.cs
- TextParagraphProperties.cs
- MediaEntryAttribute.cs
- PolicyManager.cs
- FormsAuthenticationCredentials.cs
- Rect3D.cs
- ControlBuilderAttribute.cs
- HttpModuleAction.cs
- DPCustomTypeDescriptor.cs
- VariableBinder.cs
- GlyphingCache.cs
- ListItemConverter.cs
- DecoderNLS.cs
- PerspectiveCamera.cs
- MethodBuilderInstantiation.cs
- FunctionOverloadResolver.cs
- BlockUIContainer.cs
- SqlTriggerContext.cs
- VerticalAlignConverter.cs
- FileSystemInfo.cs
- DocumentPageHost.cs
- _BasicClient.cs
- TreeNodeConverter.cs
- TextRangeProviderWrapper.cs
- TextBoxAutomationPeer.cs
- PolyLineSegment.cs
- TreeSet.cs
- SplitterDesigner.cs
- RequiredAttributeAttribute.cs
- DiagnosticSection.cs
- NominalTypeEliminator.cs
- SqlFileStream.cs
- ListBoxItemAutomationPeer.cs
- DataBindingExpressionBuilder.cs
- Lease.cs
- EnumBuilder.cs
- OdbcDataAdapter.cs
- Blend.cs
- SimpleBitVector32.cs
- BamlLocalizableResource.cs
- TextServicesContext.cs
- Single.cs
- LassoHelper.cs
- QueryableFilterUserControl.cs
- SqlFactory.cs
- CodeAssignStatement.cs
- InvalidOperationException.cs
- ClientUriBehavior.cs
- ClientUtils.cs
- DirectoryObjectSecurity.cs
- BinaryEditor.cs
- XhtmlTextWriter.cs