我在我的代码中创建了一个具有特定名称的跟踪源,然后我想使用 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>