2013-06-27 73 views
3

我有各種類庫中有跟蹤源。工作正常。如何告訴用戶一個監聽器的.NET跟蹤源?

在我的.config文件中,我需要指定哪個源將文本轉儲到偵聽器。好,很好。

但我有大約20來源所有相同開關值和濾波器類型等

那麼,有沒有辦法說:對於所有的圖書館-all-來源,使用此開關值,這個過濾器和這個監聽器。

生效:將所有跟蹤信息轉儲到這個/這些監聽器。

可以這樣做嗎?

回答

4

您將獲得使用shareListener標籤疼痛的降幅最大:http://msdn.microsoft.com/en-us/library/ms229501.aspx

1開關許多跟蹤源 - 沒有。 1是許多來源的監聽器 - 是的,共享監聽器,我認爲它仍然需要重複配置(但它們都指向相同的共享監聽器)。 Filter--應該能夠使過濾器成爲共享偵聽器的子元素,因此它將被定義一次。

我假設您正在嘗試減少配置負擔,因此涉及自定義偵聽器和過濾器的策略將會失效,但假設可以編寫自定義偵聽器和過濾器作爲跟蹤源的參數列表 - AFAIK ,沒有人試圖創造一個。 MS,我相信希望有第三方庫擴展System.Diagnostics,目前UKADC和Essential.Diagnostics是最好的,我會用他們的基類來擴展MS已經提供的。

另一種可能性是以編程方式在代碼中註冊監聽程序,這完全避免了配置並提供了使用循環的機會。

我通過創建生成system.diagnostics部分的代碼生成應用程序來處理此問題 - 生成的代碼很容易閱讀,結果配置很大且冗長且重複。

相關問題