搜尋此網誌
2011年12月29日 星期四
log4net的應用
'log4net.Layout.PatternLayout 中的轉換模式(ConversionPattern)
'
'%m(message): 輸出的日誌消息,如ILog.Debug(…) 輸出的一條消息
'%n(new line): 換行
'%d(datetime): 輸出當前語句運行的時刻
'%r(run time): 輸出程序從運行到執行到當前語句時消耗的毫秒數
'%t(thread id): 當前語句所在的線程ID
'%p(priority): 日誌的當前優先級別,即DEBUG 、INFO 、WARN… 等
'%c(class): 當前日誌對象的名稱,例如:
' 模式字符串為:%-10c -%m%n
' 代碼為:
' ILog log=LogManager.GetLogger(“Exam.Log”);
' log.Debug(“Hello”);
' 則輸出為下面的形式:
' Exam.Log - Hello
'%L :輸出語句所在的行號
'%F :輸出語句所在的文件名
'%- 數字:表示該項的最小長度,如果不夠,則用空格填充
'例如,轉換模式為%r [%t]%-5p %c - %m%n 的PatternLayout 將生成類似於以下內容的輸出:
'176 [main] INFO org.foo.Bar - Located nearest gas station.
1.下載並將log4net.dll加入參考
2.在Global中Application_Start裡加入
log4net.Config.XmlConfigurator.ConfigureAndWatch(New
System.IO.FileInfo(AppDomain.CurrentDomain.BaseDirectory & "log4net.config"))
3.在根目錄增加log4net.config檔
4.log4net.config中建立
<?xml version="1.0" encoding="utf-8" ?>
<log4net>
<!--設定監看等級必要一般而言會設DEBUG-->
<!--訊息有五種等級由低而高為Debug、Info、Warn、Error、Fatal 設太低高的會無法使用-->
<root>
<level value="DEBUG" />
<appender-ref ref="RollingLogFileAppender" />
</root>
<!--自定義-->
<logger name="AAA.DBAccess" additivity="false">
<level value="DEBUG" />
<appender-ref ref="DBAccess_Info" />
</logger>
<!--DBAccess_Info自定義設定-->
<appender name="DBAccess_Info" type="log4net.Appender.RollingFileAppender">
<!--輸出檔案路徑-->
<file value="Log/" />
<appendToFile value="true" />
<rollingStyle value="Date" />
<!--關閉固定檔名-->
<staticLogFileName value="false" />
<!--檔名規則年月日+html-->
<datePattern value=""AAA_"yyyyMMdd".html"" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date [%thread] %-5level - %logger - %L - [%property{NDC}] - %m %n" />
</layout>
</appender>
<appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
<!--輸出檔案路徑-->
<file value="Log/" />
<appendToFile value="true" />
<!--大小約束-->
<rollingStyle value="Date" />
<!--關閉固定檔名-->
<staticLogFileName value="false" />
<!--檔名規則年月日+html-->
<datePattern value="yyyyMMdd".html"" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date - %F - [%thread] - %-5level - %logger - %L - %c - %m %n" />
</layout>
</appender>
</log4net>
5.程式中
'預設的宣告
Private Shared ReadOnly _log As log4net.ILog =
log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType)
'自定義宣告
Private Shared ReadOnly _log2 As log4net.ILog = log4net.LogManager.GetLogger("AAA.DBAccess")
'log產生
_log2.Debug("TEST<br>")
測試過的格式TXT,HTML,XML
由於測試時的換行只有TXT能正常執行
所以建議假如需要使用檔案格式
TXT,HTML(需自行加<BR>但是可以使用網路直接觀看XML格式需另行編寫比較麻煩)
相關好文介紹
http://johoya.blogspot.com/2007/03/log4net.html
訂閱:
張貼留言 (Atom)
沒有留言:
張貼留言