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