static void DoTrace(TraceMessage message, TraceLevel level) { if (!message.CorrelationId.HasValue) { if (Trace.CorrelationManager.ActivityId != Guid.Empty) { message.CorrelationId = Trace.CorrelationManager.ActivityId; } } using (var writer = new StringWriter()) { _serializer.Serialize(writer, message); // Can't use delegates here as all the Trace methods are [Conditional] switch (level) { case TraceLevel.Info: default: Trace.TraceInformation(writer.ToString()); break; case TraceLevel.Warning: Trace.TraceWarning(writer.ToString()); break; case TraceLevel.Error: Trace.TraceError(writer.ToString()); break; } } }
public static void TraceError(TraceMessage message) { DoTrace(message, TraceLevel.Error); }
public static void TraceWarning(TraceMessage message) { DoTrace(message, TraceLevel.Warning); }
public static void TraceInformation(TraceMessage message) { DoTrace(message, TraceLevel.Info); }