天天看點

log4j的ConversionPattern參數的意義

1、常用标志:

-X: X資訊輸出時左對齊 

%p: 輸出日志資訊優先級,即DEBUG,INFO,WARN,ERROR,FATAL, 

%d: 輸出日志時間點的日期或時間,預設格式為ISO8601,也可以在其後指定格式,比如:%d{yyyy-MM-dd HH:mm:ss,SSS},輸出類似:2011-10-18 22:10:28,921 

%r: 輸出自應用啟動到輸出該log資訊耗費的毫秒數 

%c: 輸出日志資訊所屬的類目,通常就是所在類的全名 

%t: 輸出産生該日志事件的線程名 

%l: 輸出日志事件的發生位置,相當于%C.%M(%F:%L)的組合,包括類目名、發生的線程,以及在代碼中的行數。 

%x: 輸出和目前線程相關聯的NDC(嵌套診斷環境),尤其用到像java servlets這樣的多客戶多線程的應用中。 

%%: 輸出一個"%"字元 

%F: 輸出日志消息産生時所在的檔案名稱 

%L: 輸出代碼中的行号 

%m: 輸出代碼中指定的消息,産生的日志具體資訊 

%n: 輸出一個回車換行符,Windows平台為"\r\n",Unix平台為"\n"輸出日志資訊換行 

2、可以在%與模式字元之間加上修飾符來控制其最小寬度、最大寬度、和文本的對齊方式。如: 

1)%20c:指定輸出category的名稱,最小的寬度是20,如果category的名稱小于20的話,預設的情況下右對齊。 

2)%-20c:指定輸出category的名稱,最小的寬度是20,如果category的名稱小于20的話,"-"号指定左對齊。 

3)%.30c:指定輸出category的名稱,最大的寬度是30,如果category的名稱大于30的話,就會将左邊多出的字元截掉,但小于30的話也不會有空格。 

4)%20.30c:如果category的名稱小于20就補空格,并且右對齊,如果其名稱長于30字元,就從左邊交遠銷出的字元截掉

3、假設目前logger名字空間是"a.b.c"

%c a.b.c

%c{2} b.c

%20c (若名字空間長度小于20,則左邊用空格填充)

%-20c (若名字空間長度小于20,則右邊用空格填充)

%.30c (若名字空間長度超過30,截去多餘字元)

%20.30c (若名字空間長度小于20,則左邊用空格填充;若名字空間長度超過30,截去多餘字元)

%-20.30c (若名字空間長度小于20,則右邊用空格填充;若名字空間長度超過30,截去多餘字元)

### set log levels ###
log4j.rootLogger = info,stdout ,  D ,  E

###
log4j.appender.stdout = org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target = System.out
log4j.appender.stdout.layout = org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern =  [%d{MM-dd HH:mm:ss}] [%p] [%c:%L] %m%n
 
### 輸出到日志檔案 ###
log4j.appender.D = org.apache.log4j.DailyRollingFileAppender
log4j.appender.D.File = ./log/stdout.log
log4j.appender.D.Append = true
log4j.appender.D.Threshold = info
log4j.appender.D.layout = org.apache.log4j.PatternLayout
log4j.appender.D.layout.ConversionPattern = [%d{MM-dd HH:mm:ss}] [%p] [%c:%L] %m%n
 
### 儲存異常資訊到單獨檔案 ###
log4j.appender.E = org.apache.log4j.DailyRollingFileAppender
log4j.appender.E.File = ./log/error.log
log4j.appender.E.Append = true
log4j.appender.E.Threshold = ERROR
log4j.appender.E.layout = org.apache.log4j.PatternLayout
log4j.appender.E.layout.ConversionPattern = [%d{MM-dd HH:mm:ss}] [%p] [%c:%L] %m%n