Q6:ログファイルの最大バックアップ数を設定するには?

Appender に org.apache.log4j.RollingFileAppender を選択(appender 要素の class 属性に指定)し、その appender 要素に MaxBackupIndex プロパティを設定します。

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">

<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">

  <appender name="FILE" class="org.apache.log4j.RollingFileAppender">
    <param name="File"   value="log/example.log" />
    <param name="Append" value="true" />
    <param name="MaxFileSize" value="1MB"/>
    <param name="MaxBackupIndex" value="10"/>
    <layout class="org.apache.log4j.PatternLayout">
      <param name="ConversionPattern" value="%t %-5p %c{2} - %m%n"/>
    </layout>
  </appender>
  
  <root>
    <level value ="debug" />
    <appender-ref ref="FILE" />
  </root>

</log4j:configuration>

MaxFileSize プロパティで設定した最大サイズを超えると、現在のファイルがリネームされ、新しくファイルが生成されます。例えばログ出力ファイル名が example.log とすると、最大サイズを超えることによって、example.log → example.log.1 とりネームされ、新しく空の example.log が生成され、以降 example.log へ新しいログが出力されます。次にまた最大サイズを超えると、example.log.1 → example.log.2、example.log → example.log1 とりネームされます。

上の設定では、MaxBackupIndex の値が10のため、example.log.9 (2006/08/10 修正) example.log.10 まで生成される可能性があります。もし最大バックアップ数まで達している状態で最大サイズを超えると、example.log.10 は削除され、その他ファイルはこれまでどおりリネームされます。

MaxBackupIndex は RollingFileAppender 固有のプロパティですので、例えば DailyRollingFileAppender ではこのプロパティは使えません。


トップページへ戻る