gpt4 book ai didi

c# - 将跟踪监听器附加到 app.config 中的现有跟踪源

转载 作者:太空宇宙 更新时间:2023-11-03 21:55:13 26 4
gpt4 key购买 nike

我在我的代码中创建了一个具有特定名称的跟踪源,然后我想使用 app.config 中的部分在运行时将监听器附加到它。

这是我的 app.config:

  <system.diagnostics>
<trace autoflush="true"/>
<sources>
<source name="myTraceSource"
switchName="mySwitch"
switchType="System.Diagnostics.SourceSwitch" >
<listeners>
<clear/>
<add name="textwriterListener"
type="System.Diagnostics.TextWriterTraceListener"
initializeData="c:\dev\mylog.txt"
traceOutputOptions="ProcessId, DateTime, Callstack" />
</listeners>
</source>
</sources>
<switches>
<add name="mySwitch" value="Verbose" />
</switches>
</system.diagnostics>

我可以看到消息是在代码中生成的

this.TraceSource.TraceEvent(TraceEventType.Verbose, 0, p_message);

但日志文件中没有任何内容(甚至没有创建)。当我设置断点并查看 this.TraceSource.Listeners 时,它是空的。

知道我在这里做错了什么,或者有任何关于调试这类事情的提示吗?甚至可以将新的监听器附加到像这样的现有源吗?

我也试过以下但没有成功:

 <system.diagnostics>
<trace autoflush="true" indentsize="4">
<listeners>
<add name="TextListener"
type="System.Diagnostics.TextWriterTraceListener"
initializeData="c:\dev\mylog.txt" />
<remove name="Default" />
</listeners>
</trace>
</system.diagnostics>

最佳答案

我看到的一种可能性是您在配置文件中指定的目录不存在。那就是说您没有显示如何初始化 TraceSource 实例,所以我不确定它与此无关。在任何情况下,使用您的配置部分的简单控制台应用程序都可以正常工作。

class Program
{
static TraceSource ts = new TraceSource("myTraceSource");

static void Main(string[] args)
{
ts.TraceEvent(TraceEventType.Verbose, 0, "Hello");
}
}

此外,请确保您的 app.config 已完成。我假设您只发布了 System.Diagnostics 部分,但这是完整的示例:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<system.diagnostics>
<trace autoflush="true"/>
<sources>
<source name="myTraceSource"
switchName="mySwitch"
switchType="System.Diagnostics.SourceSwitch" >
<listeners>
<clear/>
<add name="textwriterListener"
type="System.Diagnostics.TextWriterTraceListener"
initializeData="c:\dev\mylog.txt"
traceOutputOptions="ProcessId, DateTime, Callstack" />
</listeners>
</source>
</sources>
<switches>
<add name="mySwitch" value="Verbose" />
</switches>
</system.diagnostics>
</configuration>

关于c# - 将跟踪监听器附加到 app.config 中的现有跟踪源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12587713/

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