log4jで古いログを定期的に削除する方法は何ですか。
log4jでは、古いログファイルを定期的に削除するために、RollingFileAppenderを構成することができます。以下は構成ファイルの例です:
log4j.rootLogger=DEBUG, file
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.triggeringPolicy=org.apache.log4j.rolling.SizeBasedTriggeringPolicy
log4j.appender.file.triggeringPolicy.MaxFileSize=10MB
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.cleanHistoryOnStart=true
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
上記の設定では、RollingFileAppenderを使用し、MaxFileSizeとMaxBackupIndexの属性を設定して、ログファイルのサイズとバックアップファイルの数を制御しました。
同時、SizeBasedTriggeringPolicyを設定し、MaxFileSizeプロパティを設定してロギングファイルの切り替えをトリガーします。
rollingPolicyはTimeBasedRollingPolicyに設定され、FileNamePatternとActiveFileName属性が設定されていて、ログファイルの命名規則とアクティブファイル名を定義しています。
最後に、アプリケーションが起動する際に履歴ログファイルを削除するようにcleanHistoryOnStartをtrueに設定しました。
上記の構成により、log4jは一定の時間とサイズの規則に従って古いロギングファイルを自動的に削除し、ログファイルのサイズと数量が管理可能な範囲内に保たれるようにします。