ASP.NET Trace物件

摘要:ASP.NET Trace物件

最近想整理一下Log機制的方法,看到了MSDN上的一篇文章,

http://msdn.microsoft.com/zh-tw/library/b0ectfxd(VS.80).aspx

這篇文章覺得就蠻詳盡的了,

整理一下心得,

  1. ASP.NET網頁的Trace如果要使用需要在web.config上的<system.web>區段中加入<trace enable="true"/>,或者在各別網頁上的<%@ Page %>加入Trace="true"的屬性。
  2. 如果組件或者是自訂義類別要使用ASP.NET的Trace,則需要在<system.diagnostics>中加入一個listener,<add name="WebPageTraceListener" type="System.Web.WebPageTraceListener, System.Web, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/>,這樣可以把Trace訊息轉給ASP.NET的Trace。
  3. 在ASP.NET專案的自訂義類別預設無法使用System.Diagnostics的Trace物件,因為並未以TRACE參數編譯,解決方法可以在web.config中使用<system.codedom> 區段設定。
  4. 在ASP.NET的網站上可以用trace.axd來觀看Trace訊息。
  5. 如果要將ASP.NET的Trace輸出給System.Diagnostics的Trace可以在<system.web>區段的<trace>加入屬性writeToDiagnosticsTrace="true"。
  6. System.Diagnostics的Trace可以使用<filter>來過濾所要追蹤的訊息。

System.Diagnostics的Trace,還可以使用TraceSource及TraceSwitch來紀錄追蹤訊息,不過,個人感覺這樣用起來不是很方便,程式設計師需要知道目前是使用那一個TraceSource,這樣感覺會增加維護上的負擔,所以,我偏好使用Trace來紀錄,然後使用filter來過濾訊息。