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