<PackageReference Include="Newtonsoft.Json" Version="8.0.2" />

DiagnosticsTraceWriter

Represents a trace writer that writes to the application's TraceListener instances.
using System; using System.Diagnostics; namespace Newtonsoft.Json.Serialization { public class DiagnosticsTraceWriter : ITraceWriter { public TraceLevel LevelFilter { get; set; } private TraceEventType GetTraceEventType(TraceLevel level) { switch (level) { case TraceLevel.Error: return TraceEventType.Error; case TraceLevel.Warning: return TraceEventType.Warning; case TraceLevel.Info: return TraceEventType.Information; case TraceLevel.Verbose: return TraceEventType.Verbose; default: throw new ArgumentOutOfRangeException("level"); } } public void Trace(TraceLevel level, string message, Exception ex) { if (level != 0) { TraceEventCache eventCache = new TraceEventCache(); TraceEventType traceEventType = GetTraceEventType(level); foreach (TraceListener listener in System.Diagnostics.Trace.Listeners) { if (!listener.IsThreadSafe) { lock (listener) { listener.TraceEvent(eventCache, "Newtonsoft.Json", traceEventType, 0, message); } } else listener.TraceEvent(eventCache, "Newtonsoft.Json", traceEventType, 0, message); if (System.Diagnostics.Trace.AutoFlush) listener.Flush(); } } } } }