about log4j

log4j日誌配置 
關鍵字: apache 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 ) ; 
如果設置級別爲INFO,則優先級大於等於INFO級別(如:INFO、WARN、ERROR)的日誌信息將可以被輸出,

小於該級別的如:DEBUG將不會被輸出 
appenderName :就是指定日誌信息輸出目的地,比如(打印到控制檯,輸出到文件等)。同一條日誌信息

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

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實現類 
3)否則,查看classpath中是否有Log4j的包,如果發現,則自動使用Log4j作爲日誌實現類 
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.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 
#指定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

#還可以單獨指定輸出某個包的日誌級別 
#log4j.logger.com.study.HelloLog4j=INFO

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