[英]How to log System.Diagnostics.Trace and System.Diagnostics.Debug messages to NLog file?
[英]What's the difference between System.Diagnostics.Trace, System.Diagnostics.Debug and System.Console?
據我了解, System.Console
默認情況下將寫入STDOUT,但是System.Diagnostics.Trace
和System.Diagnostics.Debug
呢? 有哪些默認行為,並且它們可以以任何方式配置嗎?
似乎也有不同的人(在互聯網上)使用不同的東西,但是我假設我發現的大多數東西都是錯誤的,因為每種東西都應該有特定的語義,對嗎? 如果是這樣,是否有任何框架(例如ASP.NET或WPF)專門使用這些框架?
也是最后一個問題,選擇使用哪種規則是什么經驗法則?
Debug
和Trace
都寫到同一位置,即Listeners
集合。 默認情況下,它被路由到Visual Studio的“調試”窗口,但是您可以在不進行調試時將代碼放在app.config
文件中,以將其重定向到其他位置。
之間的差異Debug
和Trace
是所有的方法Debug
的時候才會寫出來DEBUG
編譯符號設置(默認情況下調試,關閉發布)當符號沒有設置方法永遠不會在你的代碼中調用。 跟蹤查找TRACE符號(調試和發行版均默認啟用)。 除此之外,這兩個類是相同的。 實際上,如果您修改Debug.Listeners
以添加新的偵聽器,它也會同時修改Trace.Listeners
因為它們都都指向內部靜態屬性TraceInternal.Listeners
至於選擇使用哪個,您是否要在發布和調試模式下顯示診斷信息? 使用跟蹤,僅調試? 使用調試。 您是否希望在不連接調試器的情況下對最終用戶可見? 使用控制台或添加控制台跟蹤偵聽器。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.