1. 程式人生 > >關於log4j按照日期記錄日誌,使用DatePattern屬性的解惑

關於log4j按照日期記錄日誌,使用DatePattern屬性的解惑

以下是本人親測用的log4j.properties的內容:

# Set root logger level to ERROR and its only appender to A1. 
log4j.rootLogger=DEBUG,R


# R is set to be a DailyRollingFileAppender. 
log4j.appender.R=org.apache.log4j.DailyRollingFileAppender 
log4j.appender.R.File=C:/logs/log4j 
log4j.appender.R.DatePattern='_'yyyy\u5E74MM\u6708dd\u65E5HH\u65F6mm\u5206'.log' 
#= '.'yyyy-MM-dd 
log4j.appender.R.layout=org.apache.log4j.PatternLayout 
log4j.appender.R.layout.ConversionPattern=%-d{yyyy-MM-dd HH:mm:ss} [%c]-[%p] %m%n

我是按照每分鐘記錄一個日誌,在自己的測試類中多次執行,最終發現log4j的執行原理是這樣的:

log4j把日誌臨時輸出到

log4j.appender.R.File=C:/logs/log4j
中指定的檔案中,此時無後綴內容

當一分鐘過去後log4j將把前一分鐘記錄到log4j裡的內容一次去完,放到
log4j.appender.R.DatePattern='_'yyyy\u5E74MM\u6708dd\u65E5HH\u65F6mm\u5206'.log' 
按照指定格式輸出到此檔案中。

迴圈往復。