log4j日誌配置信息 轉

log4j.properties文件

log4j.rootLogger=INFO, stdout, file

log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%n%-d{yyyy-MM-dd HH:mm:ss}%n[%p]-[Thread: %t]-[%C.%M()]: %m%n
#log4j.appender.stdout.Threshold=WARN
 
# Output to the File
log4j.appender.file=org.apache.log4j.RollingFileAppender
log4j.appender.file.File=./log/app.log
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%n%-d{yyyy-MM-dd HH:mm:ss}%n[%p]-[Thread: %t]-[%C.%M()]: %m%n
log4j.appender.file.maxFileSize=1MB
log4j.appender.file.maxBackupIndex=10

配置文件說明
Log4J配置文件的基本格式如下

#配置根Logger
log4j.rootLogger = [ level ] , appenderName1 , appenderName2 , …
level 是日誌記錄的優先級,分爲OFF、FATAL、ERROR、WARN、INFO、DEBUG、ALL或者您定義的級別。Log4j建議只使用四個級別,優 先級從高到低分別是ERROR、WARN、INFO、DEBUG。
log4j.appender.stdout.Threshold決定了最低接收級別,對當前的輸出級別的修改,直接覆蓋rootLogger

#配置日誌信息輸出目的地Appender
log4j.appender.appenderName = fully.qualified.name.of.appender.class 
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.file=org.apache.log4j.RollingFileAppender

#配置日誌信息的格式(佈局)
log4j.appender.appenderName.layout = fully.qualified.name.of.layout.class 
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%n%-d{yyyy-MM-dd HH:mm:ss}%n[%p]-[Thread: %t]-[%C.%M()]: %m%n

Appender 爲日誌輸出目的地,Log4j提供的appender有以下幾種:

org.apache.log4j.ConsoleAppender         #控制檯
org.apache.log4j.FileAppender            #文件
org.apache.log4j.DailyRollingFileAppender  #每天產生一個日誌文件
org.apache.log4j.RollingFileAppender       #文件大小到達指定尺寸的時候產生一個新的文件
org.apache.log4j.WriterAppender            #將日誌信息以流格式發送到任意指定的地方
org.apache.log4j.net.SMTPAppender        #郵箱
org.apache.log4j.jdbc.JDBCAppender       #數據庫

Layout:日誌輸出格式,Log4j提供的layout有以下幾種:

org.apache.log4j.HTMLLayout    #以HTML表格形式佈局
org.apache.log4j.PatternLayout #可以靈活地指定佈局模式
org.apache.log4j.SimpleLayout  #包含日誌信息的級別和信息字符串
org.apache.log4j.TTCCLayout    #包含日誌產生的時間、線程、類別等等信息

打印參數: Log4J採用類似C語言中的printf函數的打印格式格式化日誌信息,如下:

%c  logger名字空間的全稱,如果加上{<層數>}表示列出從最內層算起的指定層數的名字空間。
%C  調用logger的類的全名(包含包路徑)。如[%C.%M()],輸出:com.crontab.main.SolrNewsToken.run()
%d  日誌記錄時間,{<日期格式>}使用ISO8601定義的日期格式。比如:%d{yyyy-MM-dd HH:mm:ss,SSS},輸出類似:2016-12-12 11:13:45,921
%F  調用logger的源文件名。
%l  日誌事件的發生位置,包括類目名、發生的線程,以及在代碼中的行數。
%L  輸出日誌事件的發生位置,包括類目名、發生的線程,以及在代碼中的行數。舉例:Testlog4.main(TestLog4.java: 10 ) 
%m  輸出消息。
%M  調用logger的方法名。
%n  當前平臺下的換行符。Windows平臺爲“\r\n”,Unix平臺爲“\n” 
%p  該條日誌的優先級,即DEBUG,INFO,WARN,ERROR,FATAL 
%r  從程序啓動時到記錄該條日誌時已經經過的毫秒數。
%t  產生該日誌事件的線程名。如[Thread: main]
%x  按NDC(Nested Diagnostic Context,線程堆棧)順序輸出日誌。
%X  按MDC(Mapped Diagnostic Context,線程映射表)輸出日誌。通常用於多個客戶端連接同一臺服務器,方便服務器區分是那個客戶端訪問留下來的日誌。
%%  顯示一個百分號。

Log4J配置文件參考

log4j.rootLogger=DEBUG,CONSOLE,FILE
#DEBUG,CONSOLE,FILE,ROLLING_FILE,MAIL,DATABASE

# 控制檯日誌 
log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender 
log4j.appender.CONSOLE.Threshold=DEBUG 
log4j.appender.CONSOLE.Target=System.out 
log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout 
log4j.appender.CONSOLE.layout.ConversionPattern=[framework] %d - %c -%-4r [%t] %-5p %c %x - %m%n 

# 文件日誌 
log4j.appender.FILE=org.apache.log4j.FileAppender 
log4j.appender.FILE.File=file.log 
log4j.appender.FILE.Append=false 
log4j.appender.FILE.layout=org.apache.log4j.PatternLayout 
log4j.appender.FILE.layout.ConversionPattern=[framework] %d - %c -%-4r [%t] %-5p %c %x - %m%n 

# 滾動日誌
log4j.appender.ROLLING_FILE=org.apache.log4j.RollingFileAppender 
log4j.appender.ROLLING_FILE.Threshold=ERROR 
log4j.appender.ROLLING_FILE.File=rolling.log 
log4j.appender.ROLLING_FILE.Append=true 
log4j.appender.ROLLING_FILE.MaxFileSize=10KB 
log4j.appender.ROLLING_FILE.MaxBackupIndex=1 
log4j.appender.ROLLING_FILE.layout=org.apache.log4j.PatternLayout 
log4j.appender.ROLLING_FILE.layout.ConversionPattern=[framework] %d - %c -%-4r [%t] %-5p %c %x - %m%n

# 按日記錄日誌
log4j.appender.dailyFile=org.apache.log4j.DailyRollingFileAppender
log4j.appender.dailyFile.Threshold=DEBUG
log4j.appender.dailyFile.ImmediateFlush=true
log4j.appender.dailyFile.Append=true
log4j.appender.dailyFile.File=D:/logs/log.log4j
log4j.appender.dailyFile.DatePattern='.'yyyy-MM-dd
log4j.appender.dailyFile.layout=org.apache.log4j.PatternLayout
log4j.appender.dailyFile.layout.ConversionPattern=[%-5p] %d(%r) --> [%t] %l: %m %x %n

# 郵件日誌 
log4j.appender.MAIL=org.apache.log4j.net.SMTPAppender 
log4j.appender.MAIL.Threshold=FATAL 
log4j.appender.MAIL.BufferSize=10 
[email protected]
log4j.appender.MAIL.SMTPHost=mail.xxxx.com 
log4j.appender.MAIL.Subject=Log4J Message 
[email protected]
log4j.appender.MAIL.layout=org.apache.log4j.PatternLayout 
log4j.appender.MAIL.layout.ConversionPattern=[framework] %d - %c -%-4r [%t] %-5p %c %x - %m%n

# 保存到數據庫
log4j.appender.DATABASE=org.apache.log4j.jdbc.JDBCAppender 
log4j.appender.DATABASE.URL=jdbc:MySQL://localhost:3306/test 
log4j.appender.DATABASE.driver=com.mysql.jdbc.Driver 
log4j.appender.DATABASE.user=root 
log4j.appender.DATABASE.password= 
log4j.appender.DATABASE.sql=INSERT INTO LOG4J (Message) VALUES ('[framework] %d - %c -%-4r [%t] %-5p %c %x - %m%n') 
log4j.appender.DATABASE.layout=org.apache.log4j.PatternLayout 
log4j.appender.DATABASE.layout.ConversionPattern=[framework] %d - %c -%-4r [%t] %-5p %c %x - %m%n

參考

http://www.iteye.com/topic/378077

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