2010-12-01 189 views
7

我有一個名爲app.log的日誌文件。當它翻轉時(我將它設置爲每分鐘僅用於測試目的),我希望它被重命名爲app-YYYY-MM-dd_HH-mm.log,但它不起作用。以下是我的log4j設置:在log4j中使用FileNamePattern,RollingFileAppender

log4j.appender.myLog=org.apache.log4j.RollingFileAppender 
log4j.appender.myLog.rollingPolicy=TimeBasedRollingPolicy 
log4j.appender.myLog.File=logs/app.log 
log4j.appender.myLog.rollingPolicy.FileNamePattern=logs/app-%d{yyyy-MM-dd_HH-mm}.log 
log4j.appender.myLog.Append=true 
log4j.appender.myLog.layout=org.apache.log4j.PatternLayout 
log4j.appender.myLog.layout.ConversionPattern=%d %-5p [%t] %-17c{2} (%13F:%L) %3x - %m%n 

有誰知道是什麼問題?在翻轉過程中,它只是將文件重命名爲app.log.1

回答

3

我假設你正在使用只是 log4j的。版本1.2.16是最新的。其源代碼中不存在rollingPolicy;僅在​​文件中用於基於xml的配置。

要得到您想要的工作的唯一方法是下載Apache extras companion for log4j


最後,如果你不想使用額外您可以使用解決方法:

org.apache.log4j.DailyRollingFileAppender

這條道路的負是你的日誌文件不會被gzip壓縮。

3

按照log4j wiki

注意TimeBasedRollingPolicy可以 只能使用XML配置,而不是 log4j.properties

The API沒有提到,但也許這就是問題所在?

+1

前段時間這已被[固定](https://bz.apache.org/bugzilla/show_bug.cgi?id=36384),並且log4j-1.2.16.jar或更高版本以及log4j-extras包可以正常工作在屬性配置器中使用基於時間的滾動策略時。我最近做了一個修補程序,以允許在使用此組合時自動創建遞歸子目錄:http://pastebin.com/DugN7AiZ。 – Moreaki 2015-10-28 09:05:38

3

下載log4j extras jar文件並將其放入lib文件夾中。 還要添加rollingPolicy標籤如下:

<rollingPolicy class="org.apache.log4j.rolling.TimeBasedRollingPolicy"> 
    <param name="FileNamePattern" 
     value="D:/Apps/Enterprise_domain/diagnostics/logs/diagnostics.% d{yyyy-MM-dd_HH-mm}.log"/> 
</rollingPolicy> 
1

請檢查您已包括apache-log4j-extras.jar和使用log4j-1.2.16.jar或者至少高於2.17的版本。 這裏是可以使用的示例log4j.properties。

#Worked with 2.17 version 
    #make log files rotate every minute or hour and zip old rotated logs 
    log4j.rootLogger=INFO, loggerId 
    log4j.appender.loggerId=org.apache.log4j.rolling.RollingFileAppender 
    log4j.appender.loggerId.rollingPolicy=org.apache.log4j.rolling.TimeBasedRollingPolicy 
    log4j.appender.loggerId.rollingPolicy.ActiveFileName=worker.log 
    log4j.appender.loggerId.rollingPolicy.FileNamePattern=worker-.%d{yyyyMMdd-HHmm}.log.gz 
    log4j.appender.loggerId.layout=org.apache.log4j.PatternLayout 
    log4j.appender.loggerId.layout.ConversionPattern=%d [%t] %-5p (%F:%L) - %m%n 

關於屬性的更多詳細信息,請here

相關問題