2009-10-06 77 views
1

我使用第三方工具,它在內部增加使用下面的代碼跟蹤消息:是否有可能以編程方式設置TraceSwitch模仿app.config條目?

System.Diagnostics.Trace.WriteLineIf(
    new System.Diagnostics.TraceSwitch("Switch", "").TraceInfo, message); 

在這種情況下,看來我必須將開關添加到我的app.config文件,以獲得跟蹤消息出現:

<system.diagnostics> 
    <switches> 
    <add name="Switch" value="3" /> 
    </switches> 
</system.diagnostics> 

因爲不是所有我的用戶被授予管理員權限,以使在Program Files目錄的變化這將成爲一個問題。

是否有可能以編程方式設置TraceSwitch並允許第三方工具編寫跟蹤消息?

回答

1

是的第一部分問題。可能不是第二部分,因爲第三方在每次調用WriteLineIf時都會創建一個新的TraceSwtich。在我看來,第三方控件似乎有一個失敗的實現,因爲1)它應該允許你通過一個屬性,方法或函數以編程方式更改「開關」,以及2)它正在讀取每個軌跡上的配置文件聲明。

+1

@AMISSico:謝謝,這就是我的預期,但我希望有一些我不知道的技巧。時間添加服務票... – mreith 2009-10-06 16:17:55

+0

只是想到了一些東西。如何刪除默認跟蹤偵聽器,然後添加您自己的。然後,您可以在配置文件中指定所有跟蹤消息,並在新偵聽器中篩選出您想要的內容。實際上,這是個好主意,而且很容易實現。 – AMissico 2009-10-06 19:17:46

+0

@AMissico:我已經實現了自己的偵聽器,但是第三方工具不會將跟蹤消息寫入任何沒有修改app.config的偵聽器。 – mreith 2009-10-06 21:47:54

相關問題