天天看點

log4j日志配置

1、配置根Logger:

log4j.rootLogger = [ level ] , appenderName, appenderName2

level:日志的級别,指定這條日志資訊的重要性。分為ALL < DEBUG < INFO < WARN 一般常用的為 

DEBUG , INFO ,WARN ,ERROR四種,分别對應Logger類的四種方法

debug(Object message ) ;

info(Object message ) ;

warn(Object message ) ;

error(Object message ) ;

小于該級别的如:DEBUG将不會被輸出

可以配置多個輸出目的地。

2、配置log輸出目的地:

org.apache.log4j.ConsoleAppender(控制台)

org.apache.log4j.FileAppender(檔案)

org.apache.log4j.DailyRollingFileAppender(每天産生一個日志檔案)

org.apache.log4j.RollingFileAppender(檔案大小到達指定尺寸的時候産生一個新的檔案)

org.apache.log4j.WriterAppender(将日志資訊以流格式發送到任意指定的地方)

3、log資訊的格式:

org.apache.log4j.HTMLLayout(HTML表格形式)

org.apache.log4j.SimpleLayout(簡單格式的日志,隻包括日志資訊的級别和指定的資訊字元串 ,如:DEBUG - Hello)

org.apache.log4j.TTCCLayout(日志的格式包括日志産生的時間、線程、類别等等資訊)

org.apache.log4j.PatternLayout(靈活地自定義日志格式)

當使用org.apache.log4j.PatternLayout來自定義資訊格式時,可以使用

log4j.appender.A1.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %p -%m%n 來格式化資訊

%c 輸出所屬類的全名,可寫為 %c{Num} ,Num類名輸出的範圍 如:"com.sun.aaa.classB", %C{2}将使日志輸出輸出範圍為:aaa.classB

%d 輸出日志時間其格式為 可指定格式 如 %d{HH:mm:ss}等

%l 輸出日志事件發生位置,包括類目名、發生線程,在代碼中的行數

%n 換行符

%m 輸出代碼指定資訊,如info(“message”),輸出message

%p 輸出日志的優先級,即 FATAL ,ERROR 等

%r 輸出從啟動到顯示該條日志資訊所耗費的時間(毫秒數)

%t 輸出産生該日志事件的線程名

4、同時使用commons-logging和Log4j

1)首先在classpath下尋找自己的配置檔案commons-logging.properties,如果找到,則使用其中定義的

Log實作類

2)如果找不到commons-logging.properties檔案,則在查找是否已定義系統環境變量

org.apache.commons.logging.Log,找到則使用其定義的Log實作類

4)否則,使用JDK自身的日志實作類(JDK1.4以後才有日志實作類)

5)否則,使用commons-logging自己提供的一個簡單的日志實作類SimpleLog

5.多個日志檔案(log4j.rootLogger=INFO, A1 ,A2)

#A2 輸出到檔案 RollingFileAppender的擴充,可以提供一種日志的備份功能。 

log4j.appender.A2=org.apache.log4j.RollingFileAppender 

#日志檔案的名稱 log4j.appender.A2.File=log4j.log 

#日志檔案的大小 log4j.appender.A2.MaxFileSize=100KB 

#儲存一個備份檔案 log4j.appender.A2.MaxBackupIndex=1 

log4j.appender.A2.layout=org.apache.log4j.TTCCLayout 

#log4j.appender.A2.layout.ConversionPattern=%-d{yyyy-MM-dd HH:mm:ss} [%c]-[%p] %m%n

#log4j.appender.A2.layout.ConversionPattern=%5p [%t] (%F:%L) - %d - %m%n

附例:(log4j.properties)

例1:

log4j.rootLogger=DEBUG, stdout

log4j.appender.stdout=org.apache.log4j.ConsoleAppender

log4j.appender.stdout.layout=org.apache.log4j.PatternLayout

log4j.appender.stdout.layout.ConversionPattern=%c{1} - %m%n

例2:

#指定根Logger,及日志輸出級别,大于等于該級别的日志将被輸出( DEBUG < INFO < WARN < ERROR < FATAL ) 設為OFF可以關閉日志 

log4j.rootLogger=DEBUG, A1,A2 ,A3

#指定log輸出目的,這裡設為輸出日志到指定目錄的檔案my.log中 

log4j.appender.A1=org.apache.log4j.FileAppender 

log4j.appender.A1.File=\\logs\\my.log #目前根目錄下 

#指定日志資訊的格式 

log4j.appender.A1.layout=org.apache.log4j.PatternLayout 

log4j.appender.A1.layout.ConversionPattern=%r %d{yyyy-MM-dd HH:mm:ss} %c %p -%m%n 

#把A2輸出到控制台 

log4j.appender.A2=org.apache.log4j.ConsoleAppender 

log4j.appender.A2.layout=org.apache.log4j.SimpleLayout

02

#A3按天輸出日志

log4j.appender.A3 =org.apache.log4j.DailyRollingFileAppender //按日輸出

log4j.appender.A3.File=logs/my.log //檔案位置

log4j.appender.A3.DatePattern='.'yyyy-MM-dd //檔案格式

log4j.appender.A3.layout=org.apache.log4j.PatternLayout

log4j.appender.A3.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss,SSS} %5p %c{1}:%L - %m%n 

#還可以單獨指定輸出某個包的日志級别 

#log4j.logger.com.study.HelloLog4j=INFO

轉自:http://log-cd.iteye.com/blog/161291

     本文轉自布拉君君 51CTO部落格,原文連結:http://blog.51cto.com/5148737/1398585,如需轉載請自行聯系原作者