2010-12-01 119 views
7

私はapp.logという名前のログファイルを持っています。それがロールオーバーすると(テストのためだけに毎分に設定しています)、app-YYYY-MM-dd_HH-mm.logに名前を変更したいのですが、動作しません。以下は私のlog4jの設定です:FileNamePattern、log4jの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で圧縮されないことです。 log4j wikiによると

3

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

3

log4j extras jarファイルをダウンロードしてlibフォルダに入れます。 もrollingPolicyタグAは、以下の追加:

<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.jarlog4j-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

関連する問題