2012-11-29 44 views
0

我需要在運行時從System.Net.Sockets設置跟蹤輸出,而不使用app.config文件方法。System.Net.Sockets跟蹤沒有app.config

設置與System.Diagnostics的東西app.config的一部分運作良好,但由於我需要有時偶爾在該領域,我寧願配置它在運行時。

+0

你可以使用像wireshark這樣的第三方工具嗎? – AlexH

+0

我可以在現場..但我真正想做的是能夠讓客戶生成一個診斷輸出,可以發回給我。因此需要在運行時打開..謝謝 –

+2

用戶可以更改app.config,然後重新運行應用程序。 –

回答

0

我不得不在幾年前的一個大型應用程序上做類似的事情(動態啓用跟蹤)。可以用代碼完成所有工作。基本思想是在啓用跟蹤的情況下進行編譯(即設置TRACE條件),並將默認跟蹤偵聽器初始設置爲空輸出設備。所有的跟蹤信息將轉到位桶。

當您要啓用跟蹤時,您需要初始化並安裝一個TraceListener,它將跟蹤信息輸出到您想要的位置。

Tracing and Instrumenting Applications的文檔顯示瞭如何在代碼中啓用和配置跟蹤,而不依賴於配置文件。

How To: Configure Network Tracing解釋了爲啓用網絡跟蹤您需要進行的配置文件設置。你必須重新編寫代碼來完成它。特別是,您需要創建對應於示例配置文件中定義的源和開關的TraceSourceTraceSwitch實例。

這當然是可行的,雖然它需要一點點圍繞所有不同的運動部件。

+0

這是我指出的方向。 「...需要創建與該示例配置文件中定義的源和交換機相對應的TraceSource和TraceSwitch實例。」這是我失明的地方。有,例如, 'private static bool System.Net.Logging.s_LoggingEnabled',我想切換。現階段我無法理解的是如何做到這一點。我會跟進你的指針。我已經成功地使用了開關和信號源。我只是無法從System.Net.Sockets'找到'跟蹤數據,除非使用app.config進行設置。謝謝 –