2

次の構成のlog4jプロパティがあります。

log4j.appender.LOG=org.apache.log4j.RollingFileAppender
log4j.appender.LOG.File=${directory}/log/app.log
log4j.appender.LOG.layout=org.apache.log4j.PatternLayout
log4j.appender.LOG.layout.ConversionPattern=%d{dd MMM HH:mm:ss,SSS} %-5p [%c{1}] %m%n
log4j.appender.LOG.Threshold=DEBUG
log4j.appender.LOG.append=false
log4j.appender.LOG.bufferedIO=false

log4j.appender.LOGHISTORY=org.apache.log4j.DailyRollingFileAppender
log4j.appender.LOGHISTORY.File=${directory}/log/old-logs/app.log
log4j.appender.LOGHISTORY.File.DatePattern='.'yyyy-MM-dd
log4j.appender.LOGHISTORY.layout=org.apache.log4j.PatternLayout
log4j.appender.LOGHISTORY.layout.ConversionPattern=%d{dd MMM HH:mm:ss,SSS} %-5p [%c{1}] %m%n
log4j.appender.LOGHISTORY.Threshold=DEBUG
log4j.appender.LOGHISTORY.append=true
log4j.appender.LOGHISTORY.bufferedIO=false

「log/old-logs」フォルダに前日のログの履歴を保存したい。これは、DailyRollingFileAppender とうまく連携しています。

また、「log」フォルダーに当日のログを残したいと考えています。これは私のローカルホスト (Windows + Eclipse + Geronimo) では正常に動作していますが、テスト サーバー (Linux + WebSphere) では正しく動作していません。この場合、「app.log」は上書きされず、すべてがログの最後に追加されます。

4

3 に答える 3

5

AFAIKRolling file appenderは、指定された最大サイズに達したときにのみファイルをロールします。上記のシナリオは、アプリケーションが再起動されるたびにローカル コピーで機能している可能性があります.append = false。実稼働環境では、サーバーが再起動されたとは思わないため、ファイルは.append = false. 上書きが機能しなかったのは、これがあなたのケースでしょうか?

于 2013-02-06T13:31:35.013 に答える
1

Check this. You should use Append with a capital A.

    log4j.appender.LOG.Append=false 
    log4j.appender.LOGHISTORY.Append=true
于 2013-01-15T15:30:11.717 に答える
0

RollingFileAppender の場合、プロパティ「MaxFileSize」を指定する必要があります。これにより、そのサイズに達したときにファイルをロールオーバーするように log4j に指示します。

例: 以下は、ログ ファイルのサイズが 2MB に達するとロール オーバーします。

log4j.appender.LOG=org.apache.log4j.RollingFileAppender
log4j.appender.LOG.File=${directory}/log/app.log
log4j.appender.LOG.layout=org.apache.log4j.PatternLayout
log4j.appender.LOG.layout.ConversionPattern=%d{dd MMM HH:mm:ss,SSS} %-5p [%c{1}] %m%n
log4j.appender.LOG.Threshold=DEBUG
log4j.appender.LOG.MaxFileSize=2MB
log4j.appender.LOG.MaxBackupIndex=2 (This is optional, tells log4j the maximum backup files to take)
于 2013-02-06T00:45:41.297 に答える