gpt4 book ai didi

c# - System.Diagnostics.Trace.WriteLine 使用哪个跟踪源?

转载 作者:太空狗 更新时间:2023-10-29 23:29:46 24 4
gpt4 key购买 nike

据我所知,有两种方法可以在 .NET 中创建跟踪消息。

  1. System.Diagnostics.Trace 的静态方法:

    Trace.WriteLine("Something happened");
  2. System.Diagnostics.TraceSource的实例方法:

    var ts = new TraceSource("TraceTest");
    ts.TraceInformation("Something happened");

在我的 app.config 文件中,我可以为一切添加跟踪监听器:

<system.diagnostics>
<trace>
<listeners>
...
</listeners>
</trace>
</system.diagnostics>

或者对于一个特定的跟踪源:

<system.diagnostics>
<sources>
<source name="...">
<listeners>
...
</listeners>
</source>
</sources>
</system.diagnostics>

我的问题

如果我使用第一种方法(System.Diagnostics.Trace 的静态方法),使用哪个跟踪源名称?

我检查了 MSDN page of System.Diagnostics.Trace ,但在那里没有找到答案。

最佳答案

我用 JustDecompile 检查了 Trace.Writeline 的来源它枚举所有的听众并将消息发送给所有人:

                foreach (TraceListener listener in TraceInternal.Listeners)
{
if (listener.IsThreadSafe)
{
listener.WriteLine(message);
if (!TraceInternal.AutoFlush)
{
continue;
}
listener.Flush();
}
else
{
lock (listener)
{
listener.WriteLine(message);
if (TraceInternal.AutoFlush)
{
listener.Flush();
}
}
}
}

但是忘记这个丑陋的 Trace 调用,使用 ETW Eventsource对于 much better tracing/logging

关于c# - System.Diagnostics.Trace.WriteLine 使用哪个跟踪源?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34491311/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com