1 // -----------------------------------------------------------------------
\r
2 // Copyright (c) Microsoft Corporation. All rights reserved.
\r
3 // -----------------------------------------------------------------------
\r
7 using System.Diagnostics;
\r
8 using Microsoft.Internal;
\r
10 namespace System.ComponentModel.Composition.Diagnostics
\r
12 // Represents a trace writer that writes to a System.Diagnostics TraceSource
\r
13 internal sealed class TraceSourceTraceWriter : TraceWriter
\r
15 internal static readonly TraceSource Source = new TraceSource("System.ComponentModel.Composition", SourceLevels.Warning);
\r
17 public override bool CanWriteInformation
\r
19 get { return Source.Switch.ShouldTrace(TraceEventType.Information); }
\r
22 public override bool CanWriteWarning
\r
24 get { return Source.Switch.ShouldTrace(TraceEventType.Warning); }
\r
27 public override bool CanWriteError
\r
29 get { return Source.Switch.ShouldTrace(TraceEventType.Error); }
\r
32 public override void WriteInformation(CompositionTraceId traceId, string format, params object[] arguments)
\r
34 WriteEvent(TraceEventType.Information, traceId, format, arguments);
\r
37 public override void WriteWarning(CompositionTraceId traceId, string format, params object[] arguments)
\r
39 WriteEvent(TraceEventType.Warning, traceId, format, arguments);
\r
42 public override void WriteError(CompositionTraceId traceId, string format, params object[] arguments)
\r
44 WriteEvent(TraceEventType.Error, traceId, format, arguments);
\r
47 private static void WriteEvent(TraceEventType eventType, CompositionTraceId traceId, string format, params object[] arguments)
\r
49 Source.TraceEvent(eventType, (int)traceId, format, arguments);
\r