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


使用org.apache.log4j.FileAppender可以把日志寫到文件中:

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的配置文件,可以參考如下:

``

log4j:configuration

``

多文件輸出——日志輪轉

如果需要把日志文件寫入到多個文件中,例如,按照文件的大小,到達一定的閾值后,就寫入另一個文件。

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

添加的屬性如下:

  • 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以及它的兩個屬性添加進去就可以了。

上面的文件中,最大的文件大小為5kb,當超過這個大小后,就會創建新的文件;然后這個文件被命名為log.1;同理,如果有log.2就會重命名為log.3。如果索引數目最多設置為5,並且已經存在了log.5,那么log.5會被直接刪除。

多問鍵輸出——日期輪轉

如果想要每天更新一下日志文件,那么可以使用org.apache.log4j.DailyRollingFileAppender。

它增加的屬性如下:

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

這個屬性可以按照下面的方式書寫:

  • '.'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中配置,添加相關的屬性即可。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM