Dot-Net

跟踪和調試語句

  • May 6, 2014

我對如何使用 .NET Trace 和 Debug 類有點困惑。

您為什麼要費心使用 Trace 而不是 Debug?

Trace.TraceError()
Trace.TraceInformation()
Trace.Assert()

Debug.WriteLine()
Debug.Assert()

另外,我知道當您處於發布配置模式時,調試語句會被忽略,但是如果跟踪語句一直適用,這對性能有何影響?

在最簡單的層面上,它們有不同的編譯開關——即Debug.WriteLine只有當你有編譯符號時才會切換等DEBUG(對於發布版本來說並不常見),Trace.WriteLine即使在發布版本中通常也會包含其中的內容。

Trace路由具有可定制的跟踪偵聽器,可以通過配置進行探測;Debug通常作為偵聽器進入調試器。當然,還有 3rd-party 跟踪系統可以提供更大的靈活性。

您可以使用編譯器開關獨立打開和關閉,如果您轉到項目屬性的建構頁面,那裡有一些複選框。

對我來說,經驗法則是我使用 debug 來獲取實際的調試資訊,即此時變數 x 的值是……等等,Trace 用於跟踪通過我的應用程序的控制流(更像是垃圾郵件)。

引用自:https://stackoverflow.com/questions/401910