log4j 配置

log4j 配置基本格式如下
#配置根Logger
log4j.rootLogger  =   [ level ]   ,  appenderName1 ,  appenderName2 ,  …

#配置日誌信息輸出目的地Appender
log4j.appender.appenderName  = 類的全路徑(可用log4j 的類,也可自定義繼承自 log4j 的類)(下面有log4j 可選類說明)
  log4j.appender.appenderName.option1  =  value1 
  … 
  log4j.appender.appenderName.optionN  =  valueN 

#配置日誌信息的格式(佈局)
log4j.appender.appenderName.layout  =  類的全路徑(可用log4j 的類,也可自定義繼承自 log4j 的類)
  log4j.appender.appenderName.layout.option1  =  value1 
  … 
  log4j.appender.appenderName.layout.optionN  =  valueN 
#配置子級信息輸出(可選)
log4j.logger.類路徑或包路徑(類路徑是繼承自包路徑的)=[ level ]   ,  appenderName3 ,  appenderName4 ,  …
appendname 和上面設置一樣
#配置當子級找到時,是否繼承父級配置(可選)
log4j.additivity.類路徑或包路徑(類路徑是繼承自包路徑的)=[true,false]
true:繼承,flase:不繼承,默認 true

level:(日誌級別)
debug,info,warn,error,fatal
Appender: (日誌輸出目的地,Log4j提供的appender有以下幾種)
org.apache.log4j.WriterAppender(將日誌信息以流格式發送到任意指定的地方)
    |-org.apache.log4j.FileAppender(文件)
      |-org.apache.log4j.DailyRollingFileAppender(每天產生一個日誌文件)
      |-org.apache.log4j.RollingFileAppender(文件大小到達指定尺寸的時候產生一個新的文件)   
    |-org.apache.log4j.ConsoleAppender(控制檯)
屬性:
WriterAppender 繼承自 AppenderSkeleton
    threshold:最低輸出級別[debug,info,warn,error,fatal]
    encoding:文件編碼
|-ConsoleAppender:
    target:[System.out,System.err]
|-FileAppender:
    file:文件絕對路徑
    append:是否追加(默認爲 true)
  |-RollingFileAppender:
    MaxFileSize:後綴可以是KB, MB 或者GB。在日誌文件到達該大小時,將原來的內容移到logging.log4j.1文件中。
    MaxBackupIndex: 將會保存多少個文件
|-DailyRollingFileAppender
    datePattern(是用於 dateformate 的)

Layout:(日誌輸出格式,Log4j提供的layout有以下幾種:都是org.apache.log4j.Layout的子類,所以也可以繼承自 Layout 來實現日誌打印格式
org.apache.log4j.HTMLLayout(以HTML表格形式佈局)
org.apache.log4j.PatternLayout(可以靈活地指定佈局模式)
org.apache.log4j.SimpleLayout(包含日誌信息的級別和信息字符串)
org.apache.log4j.TTCCLayout(包含日誌產生的時間、線程、類別等等信息)

如果選的是 PatternLayout 那麼可通過配置 conversionPattern 來配置打印的格式 具體參數如下:
%m   輸出代碼中指定的消息 代碼中寫的 
%p   輸出優先級,即DEBUG,INFO,WARN,ERROR,FATAL 
%r   輸出自應用啓動到輸出該log信息耗費的毫秒數 
%c   輸出所屬的類目,通常就是所在類的全名 
%t   輸出產生該日誌事件的線程名 
%n   輸出一個回車換行符,Windows平臺爲“/r/n”,Unix平臺爲“/n” 
%d   輸出日誌時間點的日期或時間,默認格式爲ISO8601,也可以在其後指定格式
%l   輸出日誌事件的發生位置,包括類目名、發生的線程,以及在代碼中的行數


假設有這樣一段 代碼
package log4j;

import org.apache.log4j.Logger;

public class TestLog4j {
    Logger logger = Logger.getLogger("com.sanri");
    public static void main(String[] args) {
        new TestLog4j().test();
    }
    private void test() {
        logger.debug("輸出調試信息");
    }
}
%m 將會輸出: 輸出調試信息
%p 將會輸出: DEBUG
%r 將會輸出: 運行到這時的時間
%c 將會輸出: com.sanri
%t 將會輸出: main
%d{yyyyMMdd HH:mm:ss} 時間
    %l 將會輸出 log4j.TestLog4j.test(TestLog4j.java:12)

比較詳細的配置:
    %-5p %d{yyyyMMdd HH:mm:ss} [%c:%L] - %n     [LOG] %m%n



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