log4net 使用學習 及代碼執行個體載的)

來源:互聯網
上載者:User

log4net是一個功能著名的開源日誌記錄組件。利用log4net可以方便地將日誌資訊記錄到檔案、控制台、Windows事件記錄和資料庫
(包括MS SQL Server, Access,
Oracle9i,Oracle8i,DB2,SQLite)中。並且我們還可以記載控制要記載的記錄層級,可以記載的日誌類別包括:FATAL(致命錯
誤)、ERROR(一般錯誤)、WARN(警告)、INFO(一般資訊)、DEBUG(調試資訊)。要想擷取最新版本的log4net組件庫,可以到官方
網站http://logging.apache.org/log4net/
下載。現在的最新版本是1.2.10。

下面的例子展示了如何利用log4net記錄日誌 。

首先從官方網站下載最近版本的log4net組件,現在的最新版本是1.2.10。在程式中我們只需要log4net.dll檔案就行了,添加對log4net.dll的引用,就可以在程式中使用了。

接著我們配置相關的設定檔(WinForm對應的是*.exe.config,WebForm對應的是*.config),本執行個體中是控制台應用程式,配置如下(附各配置的說明):

————————————————————————————————————————

設定檔內容為:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <configSections>
    <section name="log4net" type="System.Configuration.IgnoreSectionHandler"/>
  </configSections>
  <appSettings>
  </appSettings>
  <log4net>
    <!--定義輸出到檔案中-->
    <appender name="LogFileAppender" type="log4net.Appender.FileAppender">
      <!--定義檔案存放位置-->
      <file value="D:/log4net/log4netfile.txt" />
      <appendToFile value="true" />
      <rollingStyle value="Date" />
      <datePattern value="yyyy-MM-dd HH:mm:ss" />
      <layout type="log4net.Layout.PatternLayout">
        <!--每條日誌末尾的文字說明-->
        <footer value="Write by Anders" />
        <!--輸出格式-->
        <!--範例:2009-08-03 12:12:12,111 [10] INFO  Log4NetDemo.MainClass [(null)] - info-->
        <conversionPattern value="記錄時間:%date 線程ID:[%thread] 記錄層級:%-5level 出錯類:%logger property:[%property{NDC}] - 錯誤描述:%message%newline" />
      </layout>
    </appender>
    <!--定義輸出到控制台命令列中-->
    <appender name="ConsoleAppender" type="log4net.Appender.ConsoleAppender">
      <layout type="log4net.Layout.PatternLayout">
        <conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" />
      </layout>
    </appender>
    <!--定義輸出到windows事件中-->
    <appender name="EventLogAppender" type="log4net.Appender.EventLogAppender">
      <layout type="log4net.Layout.PatternLayout">
        <conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" />
      </layout>
    </appender>
    <!--定義輸出到資料庫中,這裡舉例輸出到Access資料庫中,資料庫為D:/log4net/的log4net.mdb-->
    <appender name="AdoNetAppender_Access" type="log4net.Appender.AdoNetAppender">
      <!--mdb檔案路徑為【D:/log4net/log4net.mdb.mdb】-->
      <connectionString value="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:/log4net/log4net.mdb;User Id=;Password=;" />
      <commandText value="INSERT INTO LogDetails ([LogDate],[Thread],[Level],[Logger],[Message]) VALUES (@logDate, @thread, @logLevel, @logger,@message)" />
      <!--定義各個參數-->
      <parameter>
        <parameterName value="@logDate" />
        <dbType value="String" />
        <size value="240" />
        <layout type="log4net.Layout.PatternLayout">
          <conversionPattern value="%date" />
        </layout>
      </parameter>
      <parameter>
        <parameterName value="@thread" />
        <dbType value="String" />
        <size value="240" />
        <layout type="log4net.Layout.PatternLayout">
          <conversionPattern value="%thread" />
        </layout>
      </parameter>
      <parameter>
        <parameterName value="@logLevel" />
        <dbType value="String" />
        <size value="240" />
        <layout type="log4net.Layout.PatternLayout">
          <conversionPattern value="%level" />
        </layout>
      </parameter>
      <parameter>
        <parameterName value="@logger" />
        <dbType value="String" />
        <size value="240" />
        <layout type="log4net.Layout.PatternLayout">
          <conversionPattern value="%logger" />
        </layout>
      </parameter>
      <parameter>
        <parameterName value="@message" />
        <dbType value="String" />
        <size value="240" />
        <layout type="log4net.Layout.PatternLayout">
          <conversionPattern value="%message" />
        </layout>
      </parameter>
    </appender>
   
    <!--定義日誌的輸出媒介,下面定義日誌以四種方式輸出。也可以下面的按照一種類型或其他類型輸出。-->
    <root>
      <!--檔案形式記錄日誌-->
      <appender-ref ref="LogFileAppender" />
      <!--控制台控制顯示日誌-->
      <appender-ref ref="ConsoleAppender" />
      <!--Windows事件記錄-->
      <appender-ref ref="EventLogAppender" />
      <!--如果不啟用相應的日誌記錄,可以通過這種方式注釋掉-->
      <appender-ref ref="AdoNetAppender_Access" />
    </root>

  </log4net>
</configuration>

————————————————————————————————————————————————
代碼檔案內容為:

using System;
using System.Reflection;
using log4net;

//注意下面的語句一定要加上,指定log4net使用.config檔案來讀取配置資訊
//如果是WinForm(假定程式為MyDemo.exe,則需要一個MyDemo.exe.config檔案)
//如果是WebForm,則從web.config中讀取相關資訊
[assembly: log4net.Config.XmlConfigurator(Watch = true)]
namespace Log4NetDemo
{
    /// <summary>
    /// 說明:本程式示範如何利用log4net記錄程式日誌資訊。log4net是一個功能著名的開源日誌記錄組件。
    /// 利用log4net可以方便地將日誌資訊記錄到檔案、控制台、Windows事件記錄和資料庫中(包括MS SQL Server, Access, Oracle9i,Oracle8i,DB2,SQLite)。
    /// 下面的例子展示了如何利用log4net記錄日誌
    /// </summary>
    public class MainClass
    {
        public static void Main(string[] args)
        {
            try
            {
                Console.WriteLine("執行個體代碼開始執行......");

                //建立日誌記錄組件執行個體
                ILog log = log4net.LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
                //記錄錯誤記錄檔
                log.Error("error", new Exception("發生了一個異常"));
                //記錄嚴重錯誤
                log.Fatal("fatal", new Exception("發生了一個致命錯誤"));
                //記錄一般資訊
                log.Info("info");
                //記錄調試資訊
                log.Debug("debug");
                //記錄警告資訊
                log.Warn("warn");

                Console.WriteLine("日誌記錄完畢,按任意鍵退出程式.....");
                Console.Read();

            }
            catch (Exception ex)
            {
                Console.WriteLine("出錯資訊為:" + ex.Message);

                Console.Read();
            }
        }
    }
}

 

——————————————————————————

原文地址為:http://blog.csdn.net/zhoufoxcn/archive/2008/03/26/2220533.aspx

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.