日誌外掛程式 log4net 的使用

來源:互聯網
上載者:User

標籤:style   io   os   使用   ar   strong   檔案   sp   div   

文字格式設定說明

可以記載的日誌類別包括:FATAL(致命錯誤)、ERROR(一般錯誤)、WARN(警告)、INFO(一般資訊)、DEBUG(調試資訊)。

文本參數說明

%m(message):輸出的日誌訊息,如ILog.Debug(…)輸出的一條訊息 
%n(new line):換行 
%d(datetime):輸出當前語句啟動並執行時刻 
%r(run time):輸出程式從運行到執行到當前語句時消耗的毫秒數 
%t(thread id):當前語句所在的線程ID 等同於 %thread 
%p(priority): 日誌的當前優先順序別,即DEBUG、INFO、WARN…等 
%c(class):當前日誌對象的名稱,例如: 
        模式字串為:%-10c -%m%n 
        代碼為: 
        ILog log=LogManager.GetLogger(“Exam.Log”); 
        log.Debug(“Hello”); 
        則輸出為下面的形式: 
        Exam.Log       - Hello 
%L:輸出語句所在的行號 
%F:輸出語句所在的檔案名稱 
%-數字:表示該項的最小長度,如果不夠,則用空格填充 
%newline: 錯誤詳情 
%message: 自訂輸出資訊 
%logger: 類 
%property: 屬性

 

以下為個人定義的模板

%n========== 
%n【記錄層級】%-5level 
%n【記錄時間】%date 
%n【線程編號】[%thread] 
%n【執行時間】[%r]毫秒 
%n【出錯檔案】%F 
%n【出錯行號】%L 
%n【出錯的類】%logger 屬性[%property{NDC}] 
%n【錯誤描述】%message 
%n【錯誤詳情】%newline

 

輸出樣本:

========== 
【記錄層級】ERROR 
【記錄時間】2012-11-08 15:49:37,625 
【線程編號】[10] 
【執行時間】[180]毫秒 
【出錯檔案】C:\Users\Administrator\Documents\Visual Studio 2010\Projects\ConsoleApplication5\ConsoleApplication5\Program.cs 
【出錯行號】24 
【出錯的類】ConsoleApplication5.Program 屬性[(null)] 
【錯誤描述】錯誤 
【錯誤詳情】 
System.DivideByZeroException: 嘗試除以零。 
   在 ConsoleApplication5.Program.Main(String[] args) 位置 C:\Users\Administrator\Documents\Visual Studio 2010\Projects\ConsoleApplication5\ConsoleApplication5\Program.cs:行號 20

========== 
【記錄層級】ERROR 
【記錄時間】2012-11-08 15:49:37,666 
【線程編號】[10] 
【執行時間】[221]毫秒 
【出錯檔案】C:\Users\Administrator\Documents\Visual Studio 2010\Projects\ConsoleApplication5\ConsoleApplication5\Program.cs 
【出錯行號】28 
【出錯的類】ConsoleApplication5.Program 屬性[(null)] 
【錯誤描述】error 
【錯誤詳情】 
System.Exception: 發生了一個異常

 

使用說明:

設定檔:

節點: <configuration>中添加

  <log4net>    <!--定義輸出到檔案中-->    <appender name="SysAppender" type="log4net.Appender.RollingFileAppender">      <!--日誌的路徑-->      <file value="Logs/Log4Net/" />      <!--是否覆蓋,預設是追加true-->      <appendToFile value="true"/>      <rollingStyle value="Composite"/>      <!--檔案名稱-->      <DatePattern value="yyyy-MM-dd‘.log‘"></DatePattern>      <!--設定無限備份=-1 ,最大備份數為1000-->      <param name="MaxSizeRollBackups" value="1000"/>      <!--每個檔案的大小-->      <param name="MaximumFileSize" value="500KB"/>      <!--名稱是否可以更改為false為可以更改-->      <param name="StaticLogFileName" value="false"/>      <layout type="log4net.Layout.PatternLayout">        <!--輸出格式-->        <conversionPattern value="%n==========%n【記錄層級】%-5level%n【記錄時間】%date%n【線程編號】[%thread]%n【執行時間】[%r]毫秒%n【出錯檔案】%F%n【出錯行號】%L%n【出錯的類】%logger 屬性[%property{NDC}]%n【錯誤描述】%message%n【錯誤詳情】%newline"/>      </layout>    </appender>    <!--定義輸出到控制台命令列中-->    <appender name="ConsoleAppender" type="log4net.Appender.ConsoleAppender">      <layout type="log4net.Layout.PatternLayout">        <conversionPattern value="%n==========%n【記錄層級】%-5level%n【記錄時間】%date%n【線程編號】[%thread]%n【執行時間】[%r]毫秒%n【出錯檔案】%F%n【出錯行號】%L%n【出錯的類】%logger 屬性[%property{NDC}]%n【錯誤描述】%message%n【錯誤詳情】%newline"/>      </layout>    </appender>    <!--定義輸出到windows事件中-->    <appender name="EventLogAppender" type="log4net.Appender.EventLogAppender">      <layout type="log4net.Layout.PatternLayout">        <conversionPattern value="%n==========%n【記錄層級】%-5level%n【記錄時間】%date%n【線程編號】[%thread]%n【執行時間】[%r]毫秒%n【出錯檔案】%F%n【出錯行號】%L%n【出錯的類】%logger 屬性[%property{NDC}]%n【錯誤描述】%message%n【錯誤詳情】%newline"/>      </layout>    </appender>    <!--定義日誌的輸出媒介,下面定義日誌以四種方式輸出。也可以下面的按照一種類型或其他類型輸出。-->    <root>      <!--檔案形式記錄日誌-->>      <appender-ref ref="SysAppender"/>      <!--控制台控制顯示日誌-->      <appender-ref ref="ConsoleAppender"/>      <!--Windows事件記錄-->      <!--<appender-ref ref="EventLogAppender"/>-->      <!-- 如果不啟用相應的日誌記錄,可以通過這種方式注釋掉      <appender-ref ref="AdoNetAppender_Access" />      -->    </root>  </log4net>

代碼中:

引用

using log4net; 
using System.Reflection

在命名空間中添加[紅色的內容]

[assembly: log4net.Config.XmlConfigurator(Watch = true)] 
namespace ConsoleApplication5

調用樣本:

using System;using System.Collections.Generic;using System.Text;using log4net;using System.Reflection;[assembly: log4net.Config.XmlConfigurator(Watch = true)]namespace ConsoleApplication5{    class Program    {        static void Main(string[] args)        {            //建立日誌記錄組件執行個體            ILog log = log4net.LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);            //記錄嚴重錯誤            log.Fatal("嚴重錯誤");            log.Fatal("嚴重錯誤", new Exception("發生了一個致命錯誤"));            //記錄錯誤記錄檔            log.Error("錯誤");            log.Error("錯誤", new Exception("發生了一個異常"));            //記錄警告資訊            log.Warn("警告");            log.Error("警告", new Exception("有一個警告資訊"));            //記錄一般資訊            log.Info("一般資訊");            log.Error("一般資訊", new Exception("發出一個一般資訊"));            //記錄調試資訊            log.Debug("調試資訊");            log.Error("調試資訊", new Exception("發生了一個調試資訊"));            Console.Read();        }    }}

日誌外掛程式 log4net 的使用

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.