搜尋此網誌

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="&quot;AAA_&quot;yyyyMMdd&quot;.html&quot;"  />
    <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&quot;.html&quot;"  />
    
    <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
  

沒有留言:

張貼留言