1 // -----------------------------------------------------------------------
\r
2 // Copyright (c) Microsoft Corporation. All rights reserved.
\r
3 // -----------------------------------------------------------------------
\r
5 using Microsoft.Internal;
\r
7 namespace System.ComponentModel.Composition.Diagnostics
\r
9 internal static class CompositionTraceSource
\r
12 private static readonly SilverlightTraceWriter Source = new SilverlightTraceWriter();
\r
14 private static readonly TraceSourceTraceWriter Source = new TraceSourceTraceWriter();
\r
17 public static bool CanWriteInformation
\r
19 get { return Source.CanWriteInformation; }
\r
22 public static bool CanWriteWarning
\r
24 get { return Source.CanWriteWarning; }
\r
27 public static bool CanWriteError
\r
29 get { return Source.CanWriteError; }
\r
32 public static void WriteInformation(CompositionTraceId traceId, string format, params object[] arguments)
\r
34 EnsureEnabled(CanWriteInformation);
\r
36 Source.WriteInformation(traceId, format, arguments);
\r
39 public static void WriteWarning(CompositionTraceId traceId, string format, params object[] arguments)
\r
41 EnsureEnabled(CanWriteWarning);
\r
43 Source.WriteWarning(traceId, format, arguments);
\r
46 public static void WriteError(CompositionTraceId traceId, string format, params object[] arguments)
\r
48 EnsureEnabled(CanWriteError);
\r
50 Source.WriteError(traceId, format, arguments);
\r
53 private static void EnsureEnabled(bool condition)
\r
55 Assumes.IsTrue(condition, "To avoid unnecessary work when a trace level has not been enabled, check CanWriteXXX before calling this method.");
\r