簡體   English   中英

System.Diagnostics.Trace,System.Diagnostics.Debug和System.Console有什么區別?

[英]What's the difference between System.Diagnostics.Trace, System.Diagnostics.Debug and System.Console?

據我了解, System.Console默認情況下將寫入STDOUT,但是System.Diagnostics.TraceSystem.Diagnostics.Debug呢? 有哪些默認行為,並且它們可以以任何方式配置嗎?

似乎也有不同的人(在互聯網上)使用不同的東西,但是我假設我發現的大多數東西都是錯誤的,因為每種東西都應該有特定的語義,對嗎? 如果是這樣,是否有任何框架(例如ASP.NET或WPF)專門使用這些框架?

也是最后一個問題,選擇使用哪種規則是什么經驗法則?

DebugTrace都寫到同一位置,即Listeners集合。 默認情況下,它被路由到Visual Studio的“調試”窗口,但是您可以在不進行調試時將代碼放在app.config文件中,以將其重定向到其他位置。

之間的差異DebugTrace是所有的方法Debug的時候才會寫出來DEBUG編譯符號設置(默認情況下調試,關閉發布)當符號沒有設置方法永遠不會在你的代碼中調用。 跟蹤查找TRACE符號(調試和發行版均默認啟用)。 除此之外,這兩個類是相同的。 實際上,如果您修改Debug.Listeners以添加新的偵聽器,它也會同時修改Trace.Listeners因為它們都都指向內部靜態屬性TraceInternal.Listeners

至於選擇使用哪個,您是否要在發布和調試模式下顯示診斷信息? 使用跟蹤,僅調試? 使用調試。 您是否希望在不連接調試器的情況下對最終用戶可見? 使用控制台或添加控制台跟蹤偵聽器。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM