Log4net 之核心組成

Log4net主要由五個部分組成,分別爲Logger,Appenders, Filters, Layouts 和Object Renders。

 


一、Logger(日誌)


    1. 記錄日誌的分類:

        Log4net能夠以多種方式輸出日誌。支持的日誌輸出常用的主要媒介有數據庫(包括MS SQL Server, Access, Oracle9i,Oracle8i,DB2,SQLite,控制檯,文件,事件日誌(可以用事件查看器查看)和郵件等多種方式。


    2. 日誌的級別

        Log4net支持多種級別的日誌。優先級從高到低依次排列如下:

        FATAL > ERROR > WARN > INFO > 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://blog.csdn.net/hu8hong9/archive/2008/08/19/2797076.aspx

發佈了60 篇原創文章 · 獲贊 8 · 訪問量 26萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章