Newtonsoft.Json/Serialization/DiagnosticsTraceWriter.cs
(开头部分) 2KB这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。
#if !(PORTABLE40 || PORTABLE || NETFX_CORE)
using System;
using System.Diagnostics;
using DiagnosticsTrace = System.Diagnostics.Trace;
namespace Newtonsoft.Json.Serialization
{
/// <summary>
/// Represents a trace writer that writes to the application's <see cref="TraceListener"/> instances.
/// </summary>
public class DiagnosticsTraceWriter : ITraceWriter
{
/// <summary>
/// Gets the <see cref="TraceLevel"/> that will be used to filter the trace messages passed to the writer.
/// For example a filter level of <code>Info</code> will exclude <code>Verbose</code> messages and include <code>Info</code>,
/// <code>Warning</code> and <code>Error</code> messages.
/// </summary>
/// <value>
/// The <see cref="TraceLevel"/> that will be used to filter the trace messages passed to the writer.
/// </value>
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");
}
}
/// <summary>
/// Writes the specified trace level, message and optional exception.
/// </summary>
/// <param name="level">The <see cref="TraceLevel"/> at which to write this trace.</param>
/// <param name="message">The trace message.</param>
/// <param name="ex">The trace exception. This parameter is optional.</param>
public void Trace(TraceLevel level, string message, Exception ex)
{
if (level == TraceLevel.Off)
return;
TraceEventCache eventCache = new TraceEventCache();
TraceEventType traceEventType = GetTraceEventType(level);
foreach (TraceListener listener in DiagnosticsTrace.Listeners)
{
if (!listener.IsThreadSafe)
{
lock (listener)
{
listener.TraceEvent(eventCache, "Newtonsoft.Json", traceEventType, 0, message);
后面还有 15 行代码,购买后查看完整代码
24 小时内免费解锁 3 个项目,之后 1 算力/个。 规则说明
AI 解读 AI
登录后可用,每次 10 算力,解读结果公开显示在下面。
还没有人解读过这个文件。