[C#] 如何在C#中添加(簡單)跟踪?


Answers

我跟著5個不同的答案以及上面的所有博客帖子,仍然有問題。 我試圖添加一個偵聽器到一些使用TraceSource.TraceEvent(TraceEventType, Int32, String)方法進行跟踪的代碼,其中TraceSource對象使用一個字符串作為“命名源”進行初始化。 對我來說,這個問題並沒有創建一個源和開關元素的有效組合來定位這個源。 以下是一個將記錄到名為tracelog.txt的文件的示例。 對於下面的代碼:

TraceSource source = new TraceSource("sourceName");
source.TraceEvent(TraceEventType.Verbose, 1, "Trace message");

我成功設法使用以下診斷配置進行日誌記錄:

  <system.diagnostics>
    <sources>
      <source name="sourceName" switchName="switchName">
        <listeners>
          <add
              name="textWriterTraceListener"
              type="System.Diagnostics.TextWriterTraceListener"
              initializeData="tracelog.txt" />
        </listeners>
      </source>
    </sources>
    <switches>
      <add name="switchName" value="Verbose" />
    </switches>
  </system.diagnostics>
Question

我想介紹一些我正在寫的C#應用程序的跟踪。 可悲的是,我永遠不會記得它是如何工作的,並且想要一個具有參考品質的教程來檢查時不時的情況。 它應該包括:

  • 添加用於註冊TraceListeners的App.config / Web.config內容
  • 如何在調用應用程序中進行設置

你知道我們應該鏈接到的超級教程嗎?

編輯:格倫斯拉文指出我在正確的方向。 將其添加到<configuration/> App.config / Web.config中:

<system.diagnostics>
    <trace autoflush="true">
      <listeners>
        <add type="System.Diagnostics.TextWriterTraceListener" name="TextWriter"
             initializeData="trace.log" />
      </listeners>
    </trace>
</system.diagnostics>

這將添加一個TextWriterTraceListener ,它將捕獲您發送給Trace.WriteLine等的所有內容。

編輯: @DanEsparza指出,你應該使用Trace.TraceInformationTrace.TraceWarningTrace.TraceError而不是Trace.WriteLine ,因為它們允許您以與string.Format相同的方式格式化消息。

提示:如果不添加任何偵聽器,則仍然可以使用Dbgview.exe程序DebugView( Dbgview.exe )查看跟踪輸出: http://technet.microsoft.com/en-us/sysinternals/bb896647.aspx : Dbgview.exe




DotNetCoders有一篇關於它的初學者文章: http://www.dotnetcoders.com/web/Articles/ShowArticle.aspx?article=50 : http://www.dotnetcoders.com/web/Articles/ShowArticle.aspx?article=50 article http://www.dotnetcoders.com/web/Articles/ShowArticle.aspx?article=50 ,他們談論如何在配置文件中設置開關以及如何編寫代碼,但它很舊(2002)。 還有一篇關於CodeProject的文章: http://www.codeproject.com/KB/trace/debugtreatise.aspx : http://www.codeproject.com/KB/trace/debugtreatise.aspx但它的年齡相同。 CodeGuru有另一篇關於自定義TraceListeners的文章: http://www.codeguru.com/columns/vb/article.php/c5611 : http://www.codeguru.com/columns/vb/article.php/c5611

我想不出任何最近的文章,希望這裡的其他人能有一些東西