Log4j配置說明

#配置根logger,可以理解爲全局配置
log4j.rootLogger = DEBUG, appenderName, appenderName, … 
DEBUG是日誌級別,該處可配置的值有OFF、FATAL、ERROR、WARN、INFO、DEBUG、ALL。
appenderName是一個目的地名稱,該名稱是自定義的,可以有多個appenderName配置,也就是說使用log4j你可以將日誌同時輸出到多個目的地。

下面例舉個例子說明:
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=[%-5p] %d{yyyy-MM-dd HH:mm:ss.SSS}  %c{1}:%L - %m%n

2、日誌輸出方式
#控制檯
log4j.appender.appenderName=org.apache.log4j.ConsoleAppender
#文件
log4j.appender.appenderName=org.apache.log4j.FileAppender
#每天產生一個日誌文件
log4j.appender.appenderName=org.apache.log4j.DailyRollingFileAppender
#文件大小到達指定尺寸的時候產生一個新的文件
log4j.appender.appenderName=org.apache.log4j.RollingFileAppender
#將日誌信息以流格式發送到任意指定的地方
log4j.appender.appenderName=org.apache.log4j.WriterAppender

2、日誌佈局
#HTML表格形式佈局
log4j.appender.appenderName.layout=org.apache.log4j.HTMLLayout
#自定義模式佈局模式
log4j.appender.appenderName.layout=org.apache.log4j.PatternLayout
#包含日誌信息的級別和信息字符串
log4j.appender.appenderName.layout=org.apache.log4j.SimpleLayout
#包含日誌產生的時間、線程、類別等等信息
log4j.appender.appenderName.layout=org.apache.log4j.TTCCLayout

3、日誌輸出格式參數說明
例子:log4j.appender.A1.layout.ConversionPattern=[%-5p] %d{yyyy-MM-dd HH:mm:ss.SSS}  %c{1}:%L - %m%n
%p:輸出日誌信息優先級,即DEBUG,INFO,WARN,ERROR,FATAL,。
%d:輸出日誌時間點的日期或時間,默認格式爲ISO8601,也可以在其後指定格式,比如:%d{yyy MMM dd HH:mm:ss,SSS},輸出類似: 2002年10月18日 22:10:28,921 。
%r:輸出自應用啓動到輸出該log信息耗費的毫秒數 。
%c:輸出日誌信息所屬的類目,通常就是所在類的全名 。
%t: 輸出產生該日誌事件的線程名 。
%l: 輸出日誌事件的發生位置,相當於%C.%M(%F:%L)的組合,包括類目名、發生的線程,以及在代碼中的行數。舉例: Testlog4.main(TestLog4.java:10) 。
%x:輸出和當前線程相關聯的NDC(嵌套診斷環境),尤其用到像java servlets這樣的多客戶多線程的應用中。 
%%:輸出一個”%”字符 。
%F:輸出日誌消息產生時所在的文件名稱 。
%L:輸出代碼中的行號 。
%m:輸出代碼中指定的消息,產生的日誌具體信息 。
%n:輸出一個回車換行符,Windows平臺爲”\r\n”,Unix平臺爲”\n”輸出日誌信息換行 。

在%與模式字符之間加上修飾符來控制其最小寬度、最大寬度、和文本的對齊方式。如: 
%20c:  指定輸出category的名稱,最小的寬度是20,如果category的名稱小於20的話,默認的情況下右對齊。 
%-20c: 指定輸出category的名稱,最小的寬度是20,如果category的名稱小於20的話,”-”號指定左對齊。 
%.30c: 指定輸出category的名稱,最大的寬度是30,如果category的名稱大於30的話,就會將左邊多出的字符截掉,
但小於30的話也不會有空格。 
%20.30c:如果category的名稱小於20就補空格,並且右對齊,如果其名稱長於30字符,就從左邊交遠銷出的字符截掉。

4、不同輸出方式下的其他配置
#指定日誌消息的輸出最低層次
log4j.appender.appenderName.Threshold=WARN
#默認值是true,意謂着所有的消息都會被立即輸出
log4j.appender.appenderName.ImmediateFlush=true
#指定輸出控制檯 ,默認情況下是:System.out
log4j.appender.appenderName.Target=System.err
#指定消息輸出到mylog.txt文件
log4j.appender.appenderName.File=mylog.txt
#即將消息增加到指定文件中,false指將消息覆蓋指定的文件內容,默認值是true
log4j.appender.appenderName.Append=false
#指定多長時間一次產生一個新文件
#’.'yyyy-MM: 每月 
#’.'yyyy-ww: 每週 
#’.'yyyy-MM-dd: 每天 
#’.'yyyy-MM-dd-a: 每天兩次 
#’.'yyyy-MM-dd-HH: 每小時 
#’.'yyyy-MM-dd-HH-mm: 每分鐘 
log4j.appender.appenderName.DatePattern=’.'yyyy-ww
#後綴可以是KB, MB 或者是 GB. 在日誌文件到達該大小時,將會自動滾動,即將原來的內容移到mylog.log.1文件。 
log4j.appender.appenderName.MaxFileSize=100KB
#指定可以產生的滾動文件的最大數。 
log4j.appender.appenderName.MaxBackupIndex=2

4.1 ConsoleAppender
Threshold、ImmediateFlush、Target
4.2 FileAppender 
Threshold、ImmediateFlush、File、Append
4.3 DailyRollingFileAppender 
Threshold、ImmediateFlush、File、Append、DatePattern
4.4 RollingFileAppender
Threshold、ImmediateFlush、File、Append、MaxFileSize、MaxBackupIndex
發佈了36 篇原創文章 · 獲贊 19 · 訪問量 12萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章