天天看點

如何使用log4net

第一步,工程中引入log4net.dll

第二步,在assemblyinfo.cs加入這一行,指定log4net的配置檔案

[assembly: log4net.config.xmlconfigurator(configfile="cxylog4net.exe.config", watch=true)]

 第三步,在配置檔案中指定以下内容

<?xml version="1.0" encoding="utf-8" ?>

<configuration>

    <configsections>

        <section name="log4net" type="log4net.config.log4netconfigurationsectionhandler, log4net" />

    </configsections>

    <log4net debug="true">

        <appender name="rollinglogfileappender" type="log4net.appender.rollingfileappender">

            <file value="e: est.log" />

            <appendtofile value="true" />

            <rollingstyle value="size" />

            <maxsizerollbackups value="10" />

            <maximumfilesize value="2kb" />

            <staticlogfilename value="true" />

            <layout type="log4net.layout.patternlayout">

                <footer value="[footer]--test by cxy1981 
" />

                <conversionpattern value="%-5p %d %5rms %-22.22c{1} %-18.18m - %m%n" />

            </layout>

        </appender>

        <root>

            <priority value="all" />

            <appender-ref ref="rollinglogfileappender" />

        </root>

    </log4net>

</configuration>

第五步,在類中寫下以下内容

using log4net;

private static readonly ilog log = logmanager.getlogger(

  system.reflection.methodbase.getcurrentmethod().declaringtype);

這樣我們就可使用log4net來記錄我們所需要的内容了

if (log.iserrorenabled)

{

    log.error("page load failed : " + ex.message);

}

以下是轉自這個位址的關于log4net的說明

<a href="http://www.cnblogs.com/liwei6797/archive/2007/04/27/729679.html">http://www.cnblogs.com/liwei6797/archive/2007/04/27/729679.html</a>

log4net核心組成

log4net主要由五個部分組成,分别為logger,appenders, filters, layouts 和object renders。

一)logger(日志)

1.記錄日志的分類:

log4net能夠以多種方式輸出日志。支援的日志輸出常用的主要媒介有資料庫(包括ms sql server, access, oracle9i,oracle8i,db2,sqlite,控制台,檔案,事件日志(可以用事件檢視器檢視)和郵件等多種方式。

2. 日志的級别

log4net支援多種級别的日志。優先級從高到低依次排列如下:

fatal &gt; error &gt; warn &gt; info &gt; debug

此外還有all(允許所有的日志請求)和off(拒絕所有的日志請求)這兩種特殊的級别。

二)appenders

appenders決定日志輸出的方式。

appenders必須實作log4net.appenders.iappender接口。

log4net目前支援的輸出方式包括:

1 adonetappender

    将日志記錄到資料庫中。可以采用sql和存儲過程兩種方式。

2 ansicolorterminalappender

    在ansi 視窗終端寫下高亮度的日志事件。

3 aspnettraceappender

    能用asp.net中trace的方式檢視記錄的日志。

4 bufferingforwardingappender

    在輸出到子appenders之前先緩存日志事件。

5 consoleappender

    将日志輸出到控制台。

6 eventlogappender

    将日志寫到windows event log.

7 fileappender

    将日志寫到檔案中。

8 localsyslogappender

    将日志寫到local syslog service (僅用于unix環境下).

9 memoryappender

    将日志存到記憶體緩沖區。

10 netsendappender

    将日志輸出到windows messenger service.這些日志資訊将在使用者終端的對話框中顯示。

11 remotesyslogappender

    通過udp網絡協定将日志寫到remote syslog service。

12 remotingappender

    通過.net remoting将日志寫到遠端接收端。

13 rollingfileappender

    将日志以復原檔案的形式寫到檔案中。

14 smtpappender

    将日志寫到郵件中。

15 traceappender

    将日志寫到.net trace 系統。

16 udpappender

    将日志connectionless udp datagrams的形式送到遠端宿主或以udpclient的形式廣播。

三)filters

appender對象将日志以預設的方式傳到輸出流,然後filter可以按照不同的标準控制日志的輸出。filter可以再配置檔案中配置。最簡單的形式是在appender中寫明一個threshold.這樣隻有級别大于或等于此threshold的日志才被記錄。

filters必須實作log4net.filters.ifilter接口。

四)layouts

layouts控制日志顯示的格式樣式。日志的顯示格式如下:

"%timestamp [%thread] %-5level %logger - %message%newline"

timestamp: 表示程式已經開始執行的時間。 機關[毫秒]。

thread:執行目前代碼的線程。

level:日志的級别。

logger:日志相關請求的名稱。

message: 日志消息。

layouts還可以控制日志的輸出樣式,比如以普通形式或以xml等形式輸出。

五) object renderers

這是很重要的一項,log4net将按照使用者定義的标準輸出日志消息。

object renders必須實作log4net.objectrenderer.iobjectrenerer接口。

小例子的源代碼

http://dl2.csdn.net/down4/20070713/13172335911.rar