Log4j官方文檔翻譯(8、文件輸出)

使用org.apache.log4j.FileAppender能夠把日誌寫到文件中:apache

FileAppender配置

  • immediateFlush 這個標誌默認爲true,是否每次有消息產生都自動flush到文件中
  • encoding 字符編碼
  • threshold appender的閾值threshold
  • Filename 日誌文件的名稱
  • fileAppend 默認設置爲true,全部的日誌都輸出到相同的文件
  • bufferedIO 是否啓用緩衝區,默認是false
  • bufferSize 若是啓用了緩衝區,設置緩衝區的大小。默認是8kb.

下面是log4j.properties中FileAppender的相關配置:

##### Define the root logger with appender file
log4j.rootLogger = DEBUG, FILE
##### Define the file appender
log4j.appender.FILE=org.apache.log4j.FileAppender
##### Set the name of the file
log4j.appender.FILE.File=${log}/log.out
##### Set the immediate flush to true (default)
log4j.appender.FILE.ImmediateFlush=true
##### Set the threshold to debug mode
log4j.appender.FILE.Threshold=debug
##### Set the append to false, overwrite
log4j.appender.FILE.Append=false
##### Define the layout for file appender
log4j.appender.FILE.layout=org.apache.log4j.PatternLayout
log4j.appender.FILE.layout.conversionPattern=%m%n

若是是配置XML的配置文件,能夠參考以下:

<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE log4j:configuration SYSTEM "log4j.dtd"> <log4j:configuration> <appender name="FILE" > <param name="file" value="${log}/log.out"/> <param name="immediateFlush" value="true"/> <param name="threshold" value="debug"/> <param name="append" value="false"/> <layout > <param name="conversionPattern" value="%m%n"/> </layout> </appender> <logger name="log4j.rootLogger" additivity="false"> <level value="DEBUG"/> <appender-ref ref="FILE"/> </logger> </log4j:configuration>app

多文件輸出——日誌輪轉

若是須要把日誌文件寫入到多個文件中,例如,按照文件的大小,到達必定的閾值後,就寫入另外一個文件。編碼

那麼你可使用apache.log4j.RollingFileAppender類,它繼承了FileAppender,並能設置一些屬性達到上面的需求。debug

添加的屬性以下:日誌

  • maxFileSize 這是日誌輪轉的關鍵屬性,設置了日誌的大小閾值,默認是10MB
  • maxBackupIndex 這個屬性設置了文件會被備份的數目,默認是1

log4j.properties的配置以下

##### Define the root logger with appender file
log4j.rootLogger = DEBUG, FILE
##### Define the file appender
log4j.appender.FILE=org.apache.log4j.RollingFileAppender
##### Set the name of the file
log4j.appender.FILE.File=${log}/log.out
##### Set the immediate flush to true (default)
log4j.appender.FILE.ImmediateFlush=true
##### Set the threshold to debug mode
log4j.appender.FILE.Threshold=debug
##### Set the append to false, should not overwrite
log4j.appender.FILE.Append=true
##### Set the maximum file size before rollover
log4j.appender.FILE.MaxFileSize=5KB
##### Set the the backup index
log4j.appender.FILE.MaxBackupIndex=2
##### Define the layout for file appender
log4j.appender.FILE.layout=org.apache.log4j.PatternLayout
log4j.appender.FILE.layout.conversionPattern=%m%n

若是你但願配置xml文件,那麼只要把RollingFileAppender以及它的兩個屬性添加進去就能夠了。code

上面的文件中,最大的文件大小爲5kb,當超過這個大小後,就會建立新的文件;而後這個文件被命名爲log.1;同理,若是有log.2就會重命名爲log.3。若是索引數目最多設置爲5,而且已經存在了log.5,那麼log.5會被直接刪除。xml

多問鍵輸出——日期輪轉

若是想要天天更新一下日誌文件,那麼可使用org.apache.log4j.DailyRollingFileAppender。繼承

它增長的屬性以下:索引

  • DatePattern 這個屬性聲明瞭命名規則,默認是每一天的半夜24點更新一次

這個屬性能夠按照下面的方式書寫:it

  • '.'yyyy-MM 在每月剛開始的時候更新一次
  • '.'yyyy-MM-dd 天天半夜24點的時候更新
  • '.'yyyy-MM-dd-a 天天12點和24點更新
  • '.'yyyy-MM-dd-HH 每一個小時更新一次
  • '.'yyyy-MM-dd-HH-mm 每分鐘更新一次
  • '.'yyyy-ww 每週的第一天更新

log4j.properties的配置以下

##### Define the root logger with appender file
log4j.rootLogger = DEBUG, FILE
##### Define the file appender
log4j.appender.FILE=org.apache.log4j.DailyRollingFileAppender
##### Set the name of the file
log4j.appender.FILE.File=${log}/log.out
##### Set the immediate flush to true (default)
log4j.appender.FILE.ImmediateFlush=true
##### Set the threshold to debug mode
log4j.appender.FILE.Threshold=debug
##### Set the append to false, should not overwrite
log4j.appender.FILE.Append=true
##### Set the DatePattern
log4j.appender.FILE.DatePattern='.' yyyy-MM-dd-a
##### Define the layout for file appender
log4j.appender.FILE.layout=org.apache.log4j.PatternLayout
log4j.appender.FILE.layout.conversionPattern=%m%n

一樣,若是在xml中配置,添加相關的屬性便可。

相關文章
相關標籤/搜索