Log4.Net的介紹

來源:互聯網
上載者:User

標籤:

一、介紹

  當我們開發軟體時,一般都會加入運行期的跟蹤手段,以方便後續故障分析和Bug調試。.net framework本身提供了一個System.Diagnostics.Trace類來實現流程跟蹤功能,但很多時候卻不能滿足我們的需求,這時往往需要一個更加強大的第三方日誌系統。Log4Net是一個開源的日誌記錄組件。和其他開源組件一樣,它也是從Java中移植過來的。log4net來源於java應用中的log4J。

二、官網以及文檔地址

官方網站:http://logging.apache.org/

:http://logging.apache.org/log4net/download_log4net.cgi 目前最新版本是1.2.15

三、樣本

1、首先建立一個控制台程式

2、在Nuget中下載Log4Net

3、單獨配置在xml檔案中,當然也可以配置在App.config或Web.config中。配置資訊下面詳講。

4、在程式啟動處讀取日誌配置資訊,如果是CS程式,在根目錄的Program.cs中的Main方法中添加下面語句。如果是BS程式,在根目錄的Global.asax.cs(沒有建立一個)中的Application_Start方法中添加:

log4net.Config.XmlConfigurator.Configure();

除了這種方式,也可以直接在項目的AssemblyInfo.cs檔案裡添加以下的語句來定義設定檔的路徑資訊。

[assembly: log4net.Config.XMLConfigurator(ConfigFile = “log4net.config”, Watch = true)]

 5、在程式中使用Log4Net

log4net.ILog log = log4net.LogManager.GetLogger("testApp.Logging");//擷取一個日誌記錄器log.Info(DateTime.Now.ToString() + ": login success");//寫入一條新log

可以定義多個log對象,每個log對象分別取設定檔不同的<logger>標記,每個<logger>分別取不同的appender。

這樣就可以用不同的log對象把日誌輸出到不同的檔案或者其它介質。

End。

四、Log4Net的五大組成部分

分別為:Logger記錄器,Appenders附著器, Filters過濾器, Layouts 和Object Renders。

4.1、Logger記錄器

Logger是應用程式需要互動的主要組件,它用來產生日誌訊息。產生的日誌訊息並不直接顯示,還要預先經過Layout的格式化處理後才會輸出。

Log4net架構定義了一個叫做LogManager的類,用來管理所有的Logger對象。它有一個GetLogger()靜態方法,用我們提供的名字參數來檢索已經存在的Logger對象。如果架構裡不存在該Logger對象,它也會為我們建立一個Logger對象。代碼如下所示:

log4net.ILog log = log4net.LogManager.GetLogger("logger-name");

記錄層級:

Logger的Level屬性可以設定為以下值,由高到低為OFF,FATAL,ERROR,WARN,INFO,DEBUG,ALL. 高於設定值方法都不能寫入日誌。
Off所有的寫入方法都不寫到日誌裡,ALL則相反。例如當我們設成Info時,logger.Debug就會被忽略而不寫入檔案,但是FATAL,ERROR,WARN,INFO會被寫入,因為他們等級高於INFO;

4.2Appender

一個好的日誌架構應該能夠產生多目的地的輸出。比如說輸出到控制台或儲存到一個記錄檔。log4net 能夠很好的滿足這些要求。它使用一個叫做Appender的組件來定義輸出介質。正如名字所示,這些組件把它們附加到Logger日誌組件上並將輸出傳遞到輸出資料流中。你可以把多個Appender組件附加到一個日誌對象上。 Log4net架構提供了幾個Appender組件。關於log4net提供的Appender組件的完整列表可以在log4net架構的協助手冊中找到。有了這些現成的Appender組件,一般來說你沒有必要再自己編寫了。但是如果你願意,可以從log4net.Appender.AppenderSkeleton類繼承。

負責向儲存介質中追加日誌, 一般在設定檔中配置,根據儲存日誌介質的不同Appender有多種,
比如:AdoNetAppender,EventLogAppender,RollingFileAppender等.參見:
http://logging.apache.org/log4net/release/config-examples.HTML.

4.3Filter

負責過濾日誌, 一般和Appender聯合使用,在設定檔中配置

4.4Layout

負責日誌訊息的格式, 一般和Appender聯合使用,在設定檔中配置。

 Layout 組件用於向使用者顯示最後經過格式化的輸出資訊。輸出資訊可以以多種格式顯示,主要依賴於我們採用的Layout組件類型。可以是線性或一個XML檔案。Layout組件和一個Appender組件一起工作。API協助手冊中有關於不同Layout組件的列表。一個Appender對象,只能對應一個Layout對象。要實現你自己的Layout類,你需要從log4net.Layout.LayoutSkeleton類繼承,它實現了ILayout介面。

----------------------------------------------------------------------

log4net標籤的架構如下, 該標籤下有root, logger, appender等標籤

root標籤

所有的logger都從root繼承, root本身也是一個logger

logger標籤

每個logger標籤代表一個logger,appender-ref表示該logger產生的日誌訊息傳遞給哪個appender,一個logger可以把相同的消

息傳遞給多個appender記錄

appender標籤

每個appender表示一個日誌的儲存位置,name不能和type一樣

設定參數

 日誌根據日期滾動

 記錄檔名格式為

 記錄檔名是否是固定不變的

4.5散打

 

五、Log4net.config配置

 

Log4.Net的介紹

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.