log4jで古いログを定期的に削除する方法は何ですか?

ログローテーションは、log4j での org.apache.log4j.rolling.RollingFileAppender を使用して実装できます。RollingFileAppender のサブクラスで、ログのローテーションポリシーとして時間ベースをサポートしています。

RollingFileAppenderを使用して古いログを定期的に削除する手順を以下に示します。

  1. log4j設定ファイル内にRollingFileAppenderを定義します。例えば:
<appender name="appenderName" class="org.apache.log4j.rolling.RollingFileAppender">
<param name="File" value="logFilename.log" />
<param name="MaxFileSize" value="10MB" />
<param name="MaxBackupIndex" value="10" />
<rollingPolicy class="org.apache.log4j.rolling.TimeBasedRollingPolicy">
<param name="FileNamePattern" value="logFilename-%d{yyyy-MM-dd}.log" />
<param name="CleanHistoryOnStart" value="true" />
</rollingPolicy>
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n" />
</layout>
</appender>

上記の設定でMaxFileSizeは単一のログファイルの最大サイズを表し、MaxBackupIndexは保持されるバックアップファイルの数を表す。

  1. ローリングポリシー
  2. ファイル名パターン
  3. 起動時に履歴を消去
  4. 私はこの会社の製品を1つ買いました。

設定により、Log4J は指定された時間フォーマットに従ってログファイルを生成し、起動時に以前のログファイルを削除します。

bannerAds