log4j.properties文件常用配置

properties文件配置

1. 配置根Logger , 語法爲 :

log4j.rootLogger = [ level ] , appenderName , appenderName ……
注意 :

  1. 第七條中雖然羅列了很多級別 , 但log4j推薦只使用四個級別 , 優先級從高到低分別是ERROR ,WARN ,INFO,DEBUG;
  2. appenderName指的是日誌輸出的地址 , 可以同時指定n個 ;

2 . 配置日誌輸出的目的地Appender以及每個輸出文件的各項屬性 , 語法爲 :

log4j.appender.appenderName = fully.qualified.name.of.appender.class       /*類的路徑*/
log4j.appender.appenderName.option1 = value1                             /*某些具體的值*/

注意 : log4j中提供的appender有以下幾種 :

  1. org.apache.log4j.ConsoleAppender(控制檯) ;org.apache.log4j.FileAppender(文件) ;
  2. org.apache.log4j.DailyRollingFileAppender(按照一定的頻度滾動產生日誌記錄文件 , 默認每天產生一個文件) ;
  3. org.apache.log4j.RollingFileAppender(文件大小到達指定尺寸的時候產生一個新的文件) ;
  4. org.apache.log4j.WriterAppender(將日誌信息以流格式發送到指定的位置) ;

3 . 配置日誌信息的格式或者佈局layout以及佈局的各項屬性 , 語法爲 :

log4j.appender.appenderName.layout = fully.qualified.name.of.appender.class
log4j.appender.appenderName.layout.option1 = value

注意 : log4j中提供的layout有以下幾種 :

  1. org.apache.log4j.HTMLLayout(以HTML表格形式佈局) ;
  2. org.apache.log4j.PatternLayout(可以靈活的指定佈局模式(自己指定輸出的日誌的格式) , 但是需要配置layout.ConversionPattern屬性) ;
  3. org.apache.log4j.SimpleLayout(包含日誌信息的級別和信息字符串) ;
  4. 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屬性值中指定其他的頻度 , 常用的幾個頻度如下 :

  1. '.'yyyy-MM : 每月產生一個日誌記錄文件 ;
  2. '.'yyyy-ww : 每週產生一個日誌記錄文件 ;
  3. '.'yyyy-MM-dd : 每天產生一個日誌記錄文件 ;
  4. '.'yyyy-MM-dd-a : 每半天產生一個日誌記錄文件 ;
  5. '.'yyyy-MM-dd-HH : 每小時產生一個日誌記錄文件 ;
  6. '.'yyyy-MM-dd-HH-mm : 每分鐘產生一個日誌記錄文件 ;

注意 : 該屬性指定值之後 , 將會按照指定的頻度來生成日誌記錄文件 , 假設指定生成一個名爲 log.txt 的文件 , 頻度指定爲每分鐘產生一個日誌記錄文件 , 當達到指定頻度後 , 會將log.txt文件中記錄的之前的日誌記錄 , 重新寫入一個名爲 log.txt.yyyy-MM-dd-HH-mm的文件中 , 而此時 log.txt 文件中存放的是新生成的日誌信息 , 該過程循環往復 ;

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