例子如下:
log4j.rootLogger=INFO, Console
.......
log4j.logger.Q=INFO,queue
log4j.additivity.Q=false
log4j.appender.queue=org.apache.log4j.RollingFileAppender
log4j.appender.queue.File=logs/mcc-app-queue.log
log4j.appender.queue.DatePattern='-'yyyy-MM-dd-HH-mm'.txt'
log4j.appender.queue.MaxFileSize=20480KB
log4j.appender.queue.MaxBackupIndex=200
log4j.appender.queue.layout=org.apache.log4j.PatternLayout
log4j.appender.queue.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %p %C.%M(%L) : %m%n
解釋:
Q是log名,queue是append
log4j.additivity.Q=false這行的意思是不繼承root,即不打印在控制檯上,根據自己定義的append(queue)打印
RollingFileAppender是連續文件打印方式,
MaxFileSize指定20M新生成一個日誌文件
MaxBackupIndex生成的最大日誌文件索引是200個,即最多會保存200個日誌文件
%d{yyyy-MM-dd HH:mm:ss} %p %C.%M(%L) : %m%n 日誌打印格式,具體說明如下:
%d{yyyy-MM-dd HH:mm:ss}是打印時間格式
%p是打印日誌級別,如:info,warn,error
%C是打印完全類名(包含包路徑),如:com.test.Test
%M是方法名,如:sayHello
%C.%M配置的話,打印出來就是 com.test.Test.sayHello
%L是打印日誌所在的行數,(%L),即(104),表示104行
%m就是要打印的內容了,如:log.info("xxxx"),那%m就是xxx了
%n是輸出一個空行。
如果是log.info("xxx"). 那麼按照%d{yyyy-MM-dd HH:mm:ss} %p %C.%M(%L) : %m%n 格式,打印出來的內容就是
2014-07-23 19:44:42 INFO com.test.Test.sayHello(135) : xxx