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類繼承。
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接口。