1. 程式人生 > >【Java日誌】log4j配置詳解

【Java日誌】log4j配置詳解

#設定日誌的級別,以及日誌所使用的appender
log4j.rootLogger=all, console, file

### 控制檯 ###
log4j.appender.console=org.apache.log4j.ConsoleAppender
log4j.appender.console.layout=org.apache.log4j.PatternLayout
log4j.appender.console.layout.ConversionPattern=%d{yyyy/MM/dd HH:mm:ss,SSS} [%t] %c(%L) %M | [%p] %F | %m%n
log4j.appender.console.Threshold=error
## 以下為ConsoleAppender私有的配置
#引數:System.out; System.err
log4j.appender.console.Target=System.out

### 檔案 ###
log4j.appender.file=org.apache.log4j.FileAppender
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%d{yyyy/MM/dd HH:mm:ss,SSS} [%t] %c(%L) %M | [%p] %F | %m%n
## 以下為File輸出的私有配置
log4j.appender.file.Encoding=UTF-8
#File:指定日誌檔案的位置
log4j.appender.file.File=/logs/log/JCLLog.log
#Append:預設是true,即將訊息增加到檔案中,false指將訊息覆蓋到指定的檔案內容
log4j.appender.file.Append=true

### 每指定時間生成一個日誌檔案###
log4j.appender.dayfile=org.apache.log4j.DailyRollingFileAppender
log4j.appender.dayfile.layout=org.apache.log4j.PatternLayout
log4j.appender.dayfile.layout.ConversionPattern=%d{yyyy/MM/dd HH:mm:ss,SSS} [%t] %c(%L) %M | [%p] %F | %m%n
log4j.appender.dayfile.File=/logs/log/daylog
##以下為DailyRollingFileAppender的私有配置
log4j.appender.dayfile.DatePattern='_'yyyy-MM-dd_HH_mm'.log'
#DatePattern:日誌滾動的時間週期
#yyyy-MM:每月;
#yyyy-ww:每週;
#yyyy-MM-dd:每天;
#yyyy-MM-dd-a:每天兩次,上下午;
#yyyy-MM-dd-HH:每小時;
#yyyy-MM-dd-HH-mm:每分鐘;

### 檔案大小到達指定尺寸的時候產生一個新的檔案###
log4j.appender.rollfile=org.apache.log4j.RollingFileAppender
log4j.appender.rollfile.layout=org.apache.log4j.PatternLayout
log4j.appender.rollfile.layout.ConversionPattern=%d{yyyy/MM/dd HH:mm:ss,SSS} [%t] %c(%L) %M | [%p] %F | %m%n
log4j.appender.rollfile.File=/logs/log/jcllog.log
##以下為RollingFileAppender的私有配置
#MaxFileSize:檔案的最大大小,當檔案到達該大小時,將會自動滾動,即將原來的內容移到xx.log.1檔案,單位可以是:KB,MB,GB
log4j.appender.rollfile.MaxFileSize=100KB
#MaxBackupIndex:指定可以產生的滾動檔案的最大數
log4j.appender.rollfile.MaxBackupIndex=22

### 將日誌資訊以流格式傳送到任意指定的地方###
log4j.appender.writer=org.apache.log4j.WriterAppender

###### appender(輸出端)######
#org.apache.log4j.ConsoleAppender(輸出到控制檯)
#org.apache.log4j.FileAppender(輸出到檔案)
#org.apache.log4j.DailyRollingFileAppender(每天產生一個日誌檔案)
#org.apache.log4j.RollingFileAppender(檔案大小到達指定尺寸的時候產生一個新的檔案)
#org.apache.log4j.WriterAppender(將日誌資訊以流的格式傳送到任意指定的地方)
##輸出端共同選項:
#log4j.appender.xxx.Threshold=WARN(指定當前appender列印日誌的最低層次)
#log4j.appender.xxx.ImmediateFlush=true(預設為true,意味著所有的訊息都會立即輸出)

###### layout(日誌格式化)######
#org.apache.log4j.HTMLLayout(以HTML表格形式佈局)
#org.apache.log4j.PatternLayout(可以靈活地指定佈局模式)
#org.apache.log4j.SimpleLayout(包含日誌資訊的級別和資訊字串)
#org。apache.log4j.TTCCLayout(包含日誌產生的時間,執行緒,類別等等資訊)

###### 列印資訊替換符 ######
#%d {date}:輸出當前時間,可以直接在其後指定格式,如:%d{yyyy/MM/dd HH:mm:ss}
#%p {priority}:輸出優先順序,即FATAL,ERROR,WARN,INFO,DEBUG,TRACE
#%m {message}:輸出程式碼中指定的資訊,即傳入的要列印的內容
#%M {Method}:輸出所在方法名
#%r {}:輸出自專案啟動到輸出該log所耗費的毫秒數
#%c {category}:輸出所屬的類目,通常就是所在的類名
#%t {thread}:輸出產生該日誌的執行緒名
#%n {}:輸出一個換行符,windows平臺為“rn”,unix平臺為“n”
#%l {line}:輸出日誌事件的發生位置,包括類目名,發生的執行緒,以及在程式碼中的行數,如果為%L,則只輸出行數
#%F {File}:輸出產生日誌的檔名稱