跟王老師學異常(九):Log4j基本使用方法

來源:互聯網
上載者:User

標籤:

Log4j基本使用方法
主講人:王少華  QQ群號:483773664
學習目標
  • 掌握Log4j在java項目中使用

  • 理解log4j.properties各個配置的含義


Log4j由三個重要的組件構成:日誌資訊的優先順序,日誌資訊的輸出目的地,日誌資訊的輸出格式。

一、輸出層級(一)輸出層級
1 log4j.rootLogger=debug, stdout,logfile

其中debug指的日誌記錄器(Logger)的輸出層級。

(二)、各層級的含義
  • fatal:指出嚴重的錯誤事件,將會導致應用程式的退出

  • error:指出雖然發生錯誤事件,但仍然不影響系統的繼續運行

  • warm:表明會出現潛在錯誤的情形

  • info:在粗粒度層級上指明訊息,強調應用程式的運行過程

  • debug:指出細粒度資訊事件,對調試應用程式非常有協助。

各應用程式的優先順序如下

fatal>error>warn>info>debug

這些優先順序的含義是:日誌記錄器(Logger)將只輸出那些層級高於或等於它的資訊。例如,層級為debug,將輸出fatal、error、warn、info、debug層級的日誌資訊;而層級為error,將只輸出fatal、error層級的日誌資訊。

二、日誌輸出目的地Appender(一)日誌輸出的目的地
1 log4j.rootLogger=debug, stdout,logfile

其中,stdout、logfile指的是日誌輸出的目的地的名稱

(二)目的地的類型

Log4j允許日誌輸出到多個目的地,一個輸出目的地被稱為一個Appender.最常用的有二種:

  • ConsoleAppender:輸出日誌到控制台,通過Target屬性配置輸出到System.err或System.out.預設的目標是System.out

  • FileAppender:輸出日誌事件到一個檔案。通過File屬性設定檔的路徑及名稱

除了這二種以外,Log4j還提供了以下三種輸出目的地

  • org.apache.log4j.DailyRollingFileAppender(每天產生一個記錄檔),

  • org.apache.log4j.RollingFileAppender(檔案大小到達指定尺寸的時候產生一個新的檔案), 

  • org.apache.log4j.WriterAppender(將日誌資訊以流格式發送到任意指定的地方)

三、日誌布局類型Layout(一)日誌布局類型

Appender必須使用一個與之相關聯的布局類型Layout,用來指定它的輸出樣式

1 log4j.appender.stdout.layout=org.apache.log4j.SimpleLayout
(二)Layout的樣式

log4j中最常用的Layout有以下3種

  • HTMLLayout:格式化日誌輸出為HTML表格

  • SimpleLayout:以一種非常簡單的方式格式化日誌輸出,它輸出層級Level,然後跟著一個破折號“-----”,最後是日誌訊息

  • PatternLayout:根據指定轉換模式格式化日誌輸出,從而支援豐富多樣的輸出格式。需要配置layout.ConversionPattern屬性,若沒有配置該屬性,則使用預設的轉換模式。

除了以上3種常用的,還有以下一種

org.apache.log4j.TTCCLayout(包含日誌產生的時間、線程、類別等等資訊)

四、轉換模式ConversionPattern(一)、執行個體
1 log4j.appender.logfile.layout.ConversionPattern=%d{yyyy-MM-dd HH\:mm\:ss}%l %F %p %m%n
(二)參數說明

對於PatternLayout,需要配置layout.ConversionPattern屬性,常用的配置參數及含義如下:

  • %d:用來設定輸出日誌的日期和時間,預設格式為ISO8601。也可以在其後指定格式,比如%d{yyyy-MM-dd HH:mm:ss},輸出格式類似於2016-04-25 09:10:08

  • %m:用來輸出代碼中指定的訊息

  • %n:用來輸出斷行符號分行符號

  • %l:用來輸出日誌事件的發生位置,包抱類名、發生的線程,以及在代碼中的行數。如:chapter06_08.Test.main(Test.java:26)

  • %p:用來輸出優先順序,即debug、info、warn、error、fatal等

  • %F:用來輸出檔案名

  • %M:用來輸出方法名

1 2016-04-25 13:43:34chapter06_08.Test.main(Test.java:26) Test.java ERROR / by zero
五、在代碼中使用Log4j(一)得到記錄器

使用Log4j的第一步就是擷取日誌記錄器,它負責控制日誌資訊。其文法如下:

1 public static Logger getLogger( String name)

Name一般取本類的名字

1 private static Logger logger = Logger.getLogger(Test.class.getName());
(二)插入日誌資訊

Logger對象提供了一系列方法來輸出不同層級的日誌資訊

  • public void debug(Object msg)

  • public void debug(Object msg,Throwable t)

  • public void info(Object msg)

  • public void info(Object msg,Throwable t)

  • public void warn(Object msg)

  • public void warn(Object msg,Throwable t)

  • public void error(Object msg)

  • public void error(Object msg,Throwable t)

  • public void fatal(Object msg)

  • public void fatal(Object msg,Throwable t)

六、更多

關於Log4j更加詳細的介紹可以去官網查看文檔,也可以去我的部落格。

我的部落格:http://teacherwang.blog.51cto.com/10946447/1767469

log4j文檔:http://logging.apache.org/log4j/1.2/manual.html















來自為知筆記(Wiz)

跟王老師學異常(九):Log4j基本使用方法

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.