0
我已经在具有特定名称的代码中创建了跟踪源,然后我想使用app.config中的部分在运行时将侦听器附加到它。将跟踪侦听器附加到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.Listeners.Clear()'行中的某处程序启动,它删除了我在配置文件中添加的任何监听器。它现在起作用了,我会继续并接受这个问题的答案。 – WildCrustacean