2010年10月9日 星期六

將 ASP.NET 追蹤與 System.Diagnostics 追蹤整合(簡要版)

1. 透過組態檔為應用程式加入 WebPageTraceListener 和 TextWriterTraceListener
將下列程式碼放在 Web.config 檔中的 <system.web> 區段後面。
<system.diagnostics>   
  <trace autoflush="true">
    <listeners>
      <add name="WebPageTraceListener"
        type="System.Web.WebPageTraceListener, System.Web, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/>
      <add name="TextWriterTraceListener"
        type="System.Diagnostics.TextWriterTraceListener, System, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"
        initializeData="AspTrace.log" />
    </listeners>
  </trace>
</system.diagnostics>

2.自動編譯應用程式並啟用追蹤
將下列程式碼放在 Web.config 檔中的 <system.diagnostics> 區段後面。
<system.codedom>
  <compilers>
    <compiler language="c#;cs;csharp"
              extension=".cs"
              compilerOptions="/d:TRACE"
              type="Microsoft.CSharp.CSharpCodeProvider, System, Version=2.0.3500.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" warningLevel="1" />
    <compiler language="VB"
              extension=".vb"
              compilerOptions="/d:Trace=true"
              type="Microsoft.VisualBasic.VBCodeProvider, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
  </compilers>
</system.codedom>

3. 測試
using System.Diagnostics;

Debug.AutoFlush = True
Debug.WriteLine("TEST")

System.Diagnostics.Trace.AutoFlush = True
System.Diagnostics.Trace.Write("GetAuthors called.", "AUTHORCLASS TRACE")

4. 注意事項
依照預設,必須等到填滿追蹤緩衝區後,才會將追蹤資料寫入目標 (Target) 系統。
若要在要求 ASP.NET Web 網頁後立即查看追蹤記錄檔中的追蹤資料,請先將 autoflush 屬性設定為 true,以在每次寫入追蹤資料後清除緩衝區。

5. 參考資料
逐步解說:將 ASP.NET 追蹤與 System.Diagnostics 追蹤整合

沒有留言:

張貼留言