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,如需轉載請自行聯系原作者