log4j.properties的簡單配置和使用
log4j.properties // 日誌檔名不能隨便寫, 是properties檔案
1 log4j.rootLogger=INFO, Console //表示INFO級別 輸出到控制檯 2 #Console 3 log4j.appender.Console=org.apache.log4j.ConsoleAppender 4 log4j.appender.Console.layout=org.apache.log4j.PatternLayout 5 log4j.appender.Console.layout.ConversionPattern=%-5p - %m%n
JAVA 程式碼部分
1 public Test{ 2 Logger log = Logger.getLogger(Test.class)//log.info() 呼叫 3 }
需要log4j JAR包
日誌級別和XML檔案的日誌配置 請參考 :http://www.cnblogs.com/bignew/p/6594562.html
Log4j支援兩種格式的配置檔案:xml和properties;依賴commons-logging包
1、配置根logger
log4j.rootLogger=[level],appenderName,appenderName,......
level可分為OFF、 FATAL、ERROR、WARN、INFO、DEBUG、ALL,如果配置OFF則不打出任何資訊,優先順序為:error>warn>info>debug,不區分大小寫
可新增子類,例:
log4j.category.org.nutz=INFO, console, nutz
log4j.category.com.gtz=DEBUG, console, gtz
2、配置日誌資訊輸出地Appender
log4j.appender.appenderName = fully.qualified.name.of.appender.class
log4j.appender.appenderName.option1 = value1
…
log4j.appender.appenderName.optionN = valueN
輸出形式有4中:
org.apache.log4j.ConsoleAppender(控制檯)
org.apache.log4j.FileAppender(檔案)
org.apache.log4j.DailyRollingFileAppender(每天產生一個日誌檔案)
org.apache.log4j.RollingFileAppender(檔案大小到達指定尺寸的時候產生一個新的檔案)
可通過 log4j.appender.appenderName.MaxFileSize=100KB設定檔案大小
還可通過 log4j.appender.appenderName.MaxBackupIndex=1設定為儲存一個備份檔案。
org.apache.log4j.WriterAppender(將日誌資訊以流格式傳送到任意指定的地方)
3、配置日誌資訊的格式(佈局)Layout
Layout 負責格式化Appender的輸出,語法為:
log4j.appender.appenderName.layout = fully.qualified.name.of.layout.class
log4j.appender.appenderName.layout.option1 = value1
…
log4j.appender.appenderName.layout.optionN = valueN
其中,Log4j提供的layout有以下幾種:
org.apache.log4j.HTMLLayout(以HTML表格形式佈局)
org.apache.log4j.PatternLayout(可以靈活地指定佈局模式)
org.apache.log4j.SimpleLayout(包含日誌資訊的級別和資訊字串)
org.apache.log4j.TTCCLayout(包含日誌產生的時間、執行緒、類別等等資訊)
4、格式化日誌資訊
log4j.appender.appenderName.layout.ConversionPattern=%d [%t] %-5p %c - %m%n
%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},輸出類似:2002年10月18日 22:10:28,921
%l 輸出日誌事件的發生位置,包括類目名、發生的執行緒,以及在程式碼中的行數。
Logger類:完成日誌記錄,設定日誌資訊級別
Appender類:決定日誌去向,終端、DB、硬碟
Layout類:決定日誌輸出的樣式,例如包含當前執行緒、行號、時間