log4j.properties詳解
前言
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 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!