log4j.properties詳解

fpcm 9年前發布 | 13K 次閱讀 log4j 日志處理

前言

    log4j其實是一個非常普遍和常用的一個apache的日志記錄工具。雖然一直都在使用,但是還沒真自己寫過,昨天跟朋友討論到了日志,于是今天又將 log4j的語法什么的看了一遍。今天就主要跟大家分享下最常用的log4j.properties和log4j.xml。



正題
    1. 配置
    log4j.properties是我們以前比較常用的一種配置文件,它使用起來比較簡單方便,我們先來看下它的配置:
# 將根日志級別設為INFO,文件輸出到兩個位置,ERRORFILE和WELCOMEFILE.  
log4j.rootLogger=INFO, ERRORFILE,WELCOMEFILE  

# 將ERRORFILE的輸出端設置為控制臺輸出,而WELCOMEFILE則輸出到名為welcome.log的文件.  
log4j.appender.ERRORFILE=org.apache.log4j.ConsoleAppender  
log4j.appender.WELCOMEFILE=org.apache.log4j.RollingFileAppender  
log4j.appender.WELCOMEFILE.File=welcome.log  

# 設置ERRORFILE的輸出端模式和顯示的信息  
log4j.appender.ERRORFILE.layout=org.apache.log4j.PatternLayout  
log4j.appender.ERRORFILE.layout.ConversionPattern=[QC] %p [%t] %C.%M(%L) | %m%n  

log4j.appender.WELCOMEFILE.layout=org.apache.log4j.PatternLayout  
log4j.appender.WELCOMEFILE.layout.ConversionPattern=[QC] %p [%t] %C.%M(%L) | %m%n  
# 將com.dan.test包下的日志級別設置為DEBUG,并輸出到welcome.log文件  
log4j.logger.com.dan.test=DEBUG, WELCOMEFILE

    2. 配置詳解
上面的小段配置文件中已經解釋了每個設置的意圖,下面我再將比較細致的解釋說明下:
1) log4j.rootLogger=INFO, ERRORFILE,WELCOMEFILE

此句為將等級為INFO的日志信息輸出到ERRORFILE和WELCOMEFILE這兩個目的地,WELCOMEFILE和WELCOMEFILE的定義在下面的代碼,可以任意起名。等級可分為OFF、FATAL、ERROR、WARN、INFO、DEBUG、ALL,如果配置OFF則不打出任何信息,如果配置為INFO這樣只顯示INFO, WARN, ERROR的log信息,而DEBUG信息不會被顯示。

2) log4j.appender.ERRORFILE=org.apache.log4j.ConsoleAppender

此句為定義名為ERRORFILE的輸出端是哪種類型,可以是
org.apache.log4j.ConsoleAppender(控制臺),
org.apache.log4j.FileAppender(文件),
org.apache.log4j.DailyRollingFileAppender(每天產生一個日志文件),
org.apache.log4j.RollingFileAppender(文件大小到達指定尺寸的時候產生一個新的文件)
org.apache.log4j.WriterAppender(將日志信息以流格式發送到任意指定的地方)

3) log4j.appender.ERRORFILE.layout=org.apache.log4j.PatternLayout

此句為定義名為stdout的輸出端的layout是哪種類型,可以是
org.apache.log4j.HTMLLayout(以HTML表格形式布局),
org.apache.log4j.PatternLayout(可以靈活地指定布局模式),
org.apache.log4j.SimpleLayout(包含日志信息的級別和信息字符串),
org.apache.log4j.TTCCLayout(包含日志產生的時間、線程、類別等等信息)

4) log4j.appender.stdout.layout.ConversionPattern= [QC] %p [%t] %C.%M(%L) | %m%n

如果使用pattern布局就要指定的打印信息的具體格式ConversionPattern,打印參數如下:
%m 輸出代碼中指定的消息
%p 輸出優先級,即DEBUG,INFO,WARN,ERROR,FATAL
%r 輸出自應用啟動到輸出該log信息耗費的毫秒數
%c 輸出所屬的類目,通常就是所在類的全名
%t 輸出產生該日志事件的線程名
%n 輸出一個回車換行符,Windows平臺為“rn”,Unix平臺為“n”
%d 輸出日志時間點的日期或時間,默認格式為ISO8601,也可以在其后指定格式,比如:%d{yyyy MMM dd HH:mm:ss,SSS},輸出類似:2015年04月30日 12:10:28,921
%l 輸出日志事件的發生位置,包括類目名、發生的線程,以及在代碼中的行數。
[QC]是log信息的開頭,可以為任意字符,一般為項目簡稱。
輸出的信息
[TS] DEBUG [main] com.dan.test.TestClass  - debug msg

5)  log4j.appender.WELCOMEFILE.File=welcome.log

此句為定義名為WELCOMEFILE的輸出端的文件名為welcome.log可以自行修改。

6) log4j.logger.com.dan.test=DEBUG, WELCOMEFILE

指定com.dan.testt包下的所有類的等級為DEBUG的日志信息輸出到WELCOMEFILE指定的文件,可以把com.dan.test改為自己項目所用的包名。

小結:
    日志在我們項目里面起到了很重要的作用,有助于幫助我們分析問題,如果我們能夠靈活的對日志進行配置,會大大提高我們解決問題的效率。
 本文由用戶 fpcm 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!