log4jで古いログを定期的に削除する方法はどう設定しますか?
旧ログを定期的に削除するために、log4jのRollingFileAppenderとTimeBasedRollingPolicyを組み合わせて使用することができます。
最初に、log4jの設定ファイルでログをファイルに出力し、RollingFileAppenderを使用するように設定します。例えば:
log4j.appender.file=org.apache.log4j.RollingFileAppender
log4j.appender.file.File=/path/to/log/file.log
log4j.appender.file.MaxFileSize=10MB
log4j.appender.file.MaxBackupIndex=10
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n
“/path/to/log/file.log” にログを出力し、ファイルサイズの最大値を10MB、バックアップインデックスの最大値を10に設定します。つまり、ログファイルのサイズが10MBに達すると、自動的にバックアップファイルが転送され、最大10個のバックアップファイルが保存されます。
次に、古いログを定期的に削除するためにTimeBasedRollingPolicyを使用できます。例えば:
log4j.appender.file.rollingPolicy=org.apache.log4j.rolling.TimeBasedRollingPolicy
log4j.appender.file.rollingPolicy.FileNamePattern=/path/to/log/file-%d{yyyy-MM-dd}.log
log4j.appender.file.rollingPolicy.ActiveFileName=/path/to/log/file.log
log4j.appender.file.rollingPolicy.PurgeInterval=1
配置は時間に基づいてファイルをローテーションし、毎日新しいログファイルを生成します。 新しいログファイルの名前は/path/to/log/file-yyyy-MM-dd.logの形式であり、アクティブなログファイルは/path/to/log/file.logに設定されています。 同時に、ログファイルのクリーンアップ間隔が1日に設定されており、つまり1日ごとに1日前のログファイルが削除されます。
上記の設定により、古いログを定期的に削除する機能が実現できます。