log4j日誌配置詳解

簡介

log4j是由apache提供的一個開源的輕量級日誌管理框架。主要由三個重要部分構成:日誌的輸出格式,優先級以及輸出目的地。
1.日誌信息的優先級用來指定這條日誌信息的重要程度;
2.日誌信息的輸出目的地指定了日誌將打印到控制檯還是文件中(或其它組件中);
3.輸出格式則控制了日誌信息的顯示內容 。

日誌級別

Log4j的日誌級別總共七種:OFF,FETAL,ERROR,WARN,INFO,DEBUG,ALL.
Log4j建議只使用四個級別,優先級從高到低分別是ERROR、WARN、INFO、DEBUG。通過在這裏定義的級別,可以控制到應用程序中相應級別的日誌信息的開關。

級別的控制

1.只要大於等於指定的控制級別,就可以輸出
2.如果有多個logger,都可以匹配輸出,則每個logger都產生輸出,其中根logger匹配所有的輸出;而級別控制來源於路徑最詳細的logger。

Appender

Log4j允許日誌請求被輸出到多個輸出源。一個輸出源被稱做一個Appender 。一個logger可以設置超過一個的appender。

常見Appender

org.apache.log4j.ConsoleAppender(控制檯)
org.apache.log4j.FileAppender(文件)
org.apache.log4j.DailyRollingFileAppender(每天產生一個日誌文件)
org.apache.log4j.RollingFileAppender(文件大小到達指定尺寸的時候產生一個新的文件)
org.apache.log4j.WriterAppender(將日誌信息以流格式發送到任意指定的地方)
org.apache.log4j.jdbc.JDBCAppender(把日誌用JDBC記錄到數據庫中)

佈局

佈局就是指輸出信息的格式。
常見Layout
org.apache.log4j.HTMLLayout(以HTML表格形式佈局),
org.apache.log4j.PatternLayout(可以靈活地指定佈局模式),
org.apache.log4j.SimpleLayout(包含日誌信息的級別和信息字符串),
org.apache.log4j.TTCCLayout(包含日誌產生的時間、線程、類別等等信息)

常用的PatternLayout

%m 輸出代碼中指定的消息
%p 輸出優先級,即DEBUG,INFO,WARN,ERROR,FATAL
%r 輸出自應用啓動到輸出該log信息耗費的毫秒數
%c 輸出所屬的類目,通常就是所在類的全名
%t 輸出產生該日誌事件的線程名
%n 輸出一個回車換行符,Windows平臺爲“\r\n”,Unix平臺爲“\n”
%d 輸出日誌時間點的日期或時間,默認格式爲ISO8601,也可以在其後指定格式,比如:%d{yyy MMM dd HH:mm:ss,SSS},輸出類似:2002年10月18日22:10:28,921
%l 輸出日誌事件的發生位置,包括類目名、發生的線程,以及在代碼中的行數。舉例:Testlog4.main(TestLog4.java:10)

rootLogger與rootCategory

rootLogger與rootCategory都是log4j文件的配置根,Logger是Category的子類,rootCategory是舊的用法,不推薦使用。

配置根的語法

log4j.rootLogger = [ level ] , appenderName, appenderName, …
其中,level 是日誌記錄的優先級。appenderName就是指定日誌信息輸出到哪個地方。可同時指定多個輸出目的地。

常見appenderName

stdout(標準輸出)
stderr(標準錯誤輸出)
file(文件輸出)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章