Log4net介紹

1、Log4net介紹數據庫

  log4net是一個功能著名的開源日誌記錄組件。利用log4net能夠方便地將日誌信息記錄到文件、控制檯、Windows事件日誌和數據庫(包括MS Server,Access,Oracle9i,Oracle8i,DB2,SQLite)中。而且咱們還能夠記載控制要記載的日誌級別,能夠記載的日誌類別包括:FATAL(致命錯誤)、ERROR(通常錯誤)、WARN(警告)、INFO(通常信息)、DEBUG(調試信息)。最新下載地址:http://logging.apache.org/log4net/apache

2、log4net的結構緩存

  log4net有四種主要的組件,分別是Logger(記錄器),Repository(庫),Appender(附着器),Layout(佈局);網絡

2.1 Logger框架

  Logger是應用程序交互的主要組件,它用來產生日誌消息。產生的日誌消息並不直接顯示,還要預先通過Layout的格式化處理後纔會輸出。asp.net

2.2 Repositoryless

  Repository主要用於負責日誌對象組織結構的維護。在log4net的之前版本中,框架僅支持分等級的組織結構(hierarchical organization)。這種等級結構本質上是庫的一個實現,而且定義在log4net.Repository.Hierarchy 名字空間中。要實現一個Repository,須要實現log4net.Repository.ILoggerRepository 接口。可是一般並非直接實現該接口,而是以log4net.Repository.LoggerRepositorySkeleton爲基類繼承。體系庫 (hierarchical repository )則由log4net.Repository.Hierarchy.Hierarchy類實現。佈局

  若是你是個log4net框架的使用者,而非擴展者,那麼你幾乎不會在你的代碼裏用到Repository的類。相反的,你須要用到LogManager類來自動管理庫和日誌對象。.net

2.3 Appender調試

  一個好的日誌框架應該可以產生多目的地的輸出。好比說輸出到控制檯或保存到一個日誌文件。log4net 可以很好的知足這些要求。它使用一個叫作Appender的組件來定義輸出介質。正如名字所示,這些組件把它們附加到Logger日誌組件上並將輸出傳遞到輸出流中。你能夠把多個Appender組件附加到一個日誌對象上。 Log4net框架提供了幾個Appender組件。關於log4net提供的Appender組件的完整列表能夠在log4net框架的幫助手冊中找到。有了這些現成的Appender組件,通常來講你沒有必要再本身編寫了。可是若是你願意,能夠從log4net.Appender.AppenderSkeleton類繼承。

  • AdoNetAppender:利用ADO.NET記錄到數據庫的日誌。
  • AnsiColorTerminalAppender:在ANSI 窗口終端寫下高亮度的日誌事件。
  • AspNetTraceAppender:能用asp.net中Trace的方式查看記錄的日誌。
  • BufferingForwardingAppender:在輸出到子Appenders以前先緩存日誌事件。
  • ConsoleAppender:將日誌輸出到控制檯。
  • EventLogAppender:將日誌寫到Windows Event Log. 
  • FileAppender:將日誌寫到文件中。
  • LocalSyslogAppender:將日誌寫到local syslog service (僅用於UNIX環境下). 
  • MemoryAppender:將日誌存到內存緩衝區。
  • NetSendAppender:將日誌輸出到Windows Messenger service.這些日誌信息將在用戶終端的對話框中顯示。
  • RemoteSyslogAppender:經過UDP網絡協議將日誌寫到Remote syslog service。
  • RemotingAppender:經過.NET Remoting將日誌寫到遠程接收端。
  • RollingFileAppender:將日誌以回滾文件的形式寫到文件中。
  • SmtpAppender:將日誌寫到郵件中。
  • TraceAppender:將日誌寫到.NET trace 系統。
  • UdpAppender:將日誌connectionless UDP datagrams的形式送到遠程宿主或以UdpClient的形式廣播。

2.4 Appender Filter

  一個Appender 對象缺省地將全部的日誌事件傳遞到輸出流。Appender的過濾器(Appender Filters) 能夠按照不一樣的標準過濾日誌事件。在log4net.Filter的名字空間下已經有幾個預約義的過濾器。使用這些過濾器,你能夠按照日誌級別範圍過濾日誌事件,或者按照某個特殊的字符串進行過濾。你能夠在API的幫助文件中發現更多關於過濾器的信息。

2.5 Layout

  Layout 組件用於向用戶顯示最後通過格式化的輸出信息。輸出信息能夠以多種格式顯示,主要依賴於咱們採用的Layout組件類型。能夠是線性的或一個XML文件。Layout組件和一個Appender組件一塊兒工做。API幫助手冊中有關於不一樣Layout組件的列表。一個Appender對象,只能對應一個Layout對象。要實現你本身的Layout類,你須要從log4net.Layout.LayoutSkeleton類繼承,它實現了ILayout接口。

相關文章
相關標籤/搜索