2011年6月26日 星期日

使用healthMonitoring的TraceWebEventProvider來記錄事件至文字檔

如題.一般provider只能記錄至wmi.eventlog.sql.email...等等
如果要記錄至文字檔可能必須要撰寫自訂privoder

不過其實是可以靠TraceWebEventProvider來將資訊轉出至文字檔的.
方法如下:



1.
先在web.config中註冊TraceWebEventProvider,
並在Rule中設定WebBaseErrorEvent要將資訊記錄至TraceWebEventProvider



   1:      <healthMonitoring enabled="true">
   2:        <providers>
   3:          <add name="TraceEventProvider" 
   4:               type="System.Web.Management.TraceWebEventProvider"
   5:               />
   6:        </providers>
   7:        <rules>
   8:          <add name="All Errors trace" 
   9:               eventName="All Errors" 
  10:               provider="TraceEventProvider"/>
  11:        </rules>
  12:      </healthMonitoring>



2.
接著在<system.Web>外面加入<trace>設定,增加一個Listener,
指定為[TextWriterTraceListener],此類別即可將trace的內容存至指定的文字檔案內



   1:    <system.diagnostics>
   2:      <trace autoflush="true" indentsize="3"  >
   3:        <listeners>
   4:          <add name="txtListener"
   5:               type="System.Diagnostics.TextWriterTraceListener"
   6:               initializeData="log.txt"></add> 
   7:        </listeners>
   8:      </trace>
   9:    </system.diagnostics>



完成之後.就可以在錯誤發生的時候.由網站根目錄的 [log.txt]檔中..得到錯誤訊息了

沒有留言:

張貼留言