文章目錄
properties文件配置
1. 配置根Logger , 語法爲 :
log4j.rootLogger = [ level ] , appenderName , appenderName ……
注意 :
- 第七條中雖然羅列了很多級別 , 但
log4j
推薦只使用四個級別 , 優先級從高到低分別是ERROR
,WARN
,INFO
,DEBUG
; appenderName
指的是日誌輸出的地址 , 可以同時指定n個 ;
2 . 配置日誌輸出的目的地Appender以及每個輸出文件的各項屬性 , 語法爲 :
log4j.appender.appenderName = fully.qualified.name.of.appender.class /*類的路徑*/
log4j.appender.appenderName.option1 = value1 /*某些具體的值*/
注意 : log4j中提供的appender
有以下幾種 :
org.apache.log4j.ConsoleAppender
(控制檯) ;org.apache.log4j.FileAppender
(文件) ;org.apache.log4j.DailyRollingFileAppender
(按照一定的頻度滾動產生日誌記錄文件 , 默認每天產生一個文件) ;org.apache.log4j.RollingFileAppender
(文件大小到達指定尺寸的時候產生一個新的文件) ;org.apache.log4j.WriterAppender
(將日誌信息以流格式發送到指定的位置) ;
3 . 配置日誌信息的格式或者佈局layout以及佈局的各項屬性 , 語法爲 :
log4j.appender.appenderName.layout = fully.qualified.name.of.appender.class
log4j.appender.appenderName.layout.option1 = value
注意 : log4j中提供的layout有以下幾種 :
org.apache.log4j.HTMLLayout
(以HTML表格形式佈局) ;org.apache.log4j.PatternLayout
(可以靈活的指定佈局模式(自己指定輸出的日誌的格式) , 但是需要配置layout.ConversionPattern
屬性) ;org.apache.log4j.SimpleLayout
(包含日誌信息的級別和信息字符串) ;org.apache.log4j.TTCCLayout
(包含日誌產生的時間 , 線程 , 類別等等信息) ;
控制檯選項
指定最低儲存什麼級別的錯誤信息
log4j.appender.appenderName.Threshold = error
用法 : rootLogger裏配置debug , 然後某個文件專門存儲error以及更高級別的錯誤信息 , 那麼就在這個配置這個文件的時候指定Threshold屬性爲error ;
是否立即輸出
log4j.appender.appenderName.ImmediateFlush=true
用法 : 默認值是true , 意味着所有的消息都會被立即輸出 , false則是不輸出 ;
控制檯輸出樣式
log4j.appender.appenderName.target=System.out
用法 : 默認值爲System.out , 輸出到控制檯 , 還可以取值System.err , 當做錯誤信息輸出 , 輸出的信息全部爲紅色 ;
輸出日誌的位置
log4j.appender.appenderName.File=../../../../logs/log.appenderName.txt
用法 : 指定日誌輸出到指定位置 , 用的是相對於配置文件根目錄的相對路徑 ;
追加或覆蓋日誌文件
log4j.appender.appenderName.File.Append=true
用法 : 默認值是true , 即將消息追加到指定文件中 , 如果取值爲false , 則會覆蓋之前的日誌內容 ;
日誌文件的最大大小
log4j.appender.appenderName.MaxFileSize=20MB
用法 : 後綴可以是KB , MB , GB , 當日志文件的大小到達指定大小後 , 將會自動滾動 , 即將原來的內容移到fileName.1文件中 , 用記事本打開該文件即可看到原來的內容 , 改屬性只能在 appender=org.apache.log4j.RollingFileAppender 時使用 ;
產生滾動文件的最大數量
log4j.appender.appenderName.MaxBackupIndex=10
用法 : 指定可以產生滾動文件的最大數量 , 與RollingFileAppender和MaxFileSize屬性一起使用 , 當MaxBackupIndex=n的時候 , 最大日誌存在數量爲n+1 , 即log.txt , log.txt.1 , … , log.txt.n , 當在服務器上運行的時候 , 如果對日誌數量沒有限制 , 那麼隨之時間的推移 , 日誌文件會越來越多 , 佔用的內存也將越來越多 , 直到佔滿整個盤 ;
規定多久產生一個日誌文件
log4j.appender.appenderName.DatePattern='.'yyyy-MM-dd
用法 : 該屬性在 log4j.appender.appenderName=org.apache.log4j.DailyRollingFileAppender 時使用 , DailyRollingFileAppender默認的頻度是每天產生一個日誌記錄文件 , 可以在DatePattern屬性值中指定其他的頻度 , 常用的幾個頻度如下 :
- '.'yyyy-MM : 每月產生一個日誌記錄文件 ;
- '.'yyyy-ww : 每週產生一個日誌記錄文件 ;
- '.'yyyy-MM-dd : 每天產生一個日誌記錄文件 ;
- '.'yyyy-MM-dd-a : 每半天產生一個日誌記錄文件 ;
- '.'yyyy-MM-dd-HH : 每小時產生一個日誌記錄文件 ;
- '.'yyyy-MM-dd-HH-mm : 每分鐘產生一個日誌記錄文件 ;
注意 : 該屬性指定值之後 , 將會按照指定的頻度來生成日誌記錄文件 , 假設指定生成一個名爲 log.txt 的文件 , 頻度指定爲每分鐘產生一個日誌記錄文件 , 當達到指定頻度後 , 會將log.txt文件中記錄的之前的日誌記錄 , 重新寫入一個名爲 log.txt.yyyy-MM-dd-HH-mm的文件中 , 而此時 log.txt 文件中存放的是新生成的日誌信息 , 該過程循環往復 ;