log4j-ファイルへのログイン

ログ情報をファイルに書き込むには、次を使用する必要があります org.apache.log4j.FileAppender

FileAppenderの構成

FileAppenderには、次の構成可能なパラメーターがあります。

プロパティ 説明
即時フラッシュ このフラグはデフォルトでtrueに設定されています。これは、ファイルへの出力ストリームが各追加操作でフラッシュされることを意味します。
エンコーディング 任意の文字エンコードを使用できます。デフォルトでは、これはプラットフォーム固有のエンコード方式です。
しきい値 このアペンダーのしきい値レベル。
ファイル名 ログファイルの名前。
fileAppend これはデフォルトでtrueに設定されています。これは、ログ情報が同じファイルの末尾に追加されることを意味します。
bufferedIO このフラグは、バッファ書き込みを有効にする必要があるかどうかを示します。デフォルトでは、falseに設定されています。
バッファサイズ バッファI / Oが有効になっている場合は、バッファサイズを示します。デフォルトでは、8kbに設定されています。

以下はサンプル構成ファイルです log4j.properties FileAppenderの場合-

# Define the root logger with appender file
log4j.rootLogger = DEBUG, FILE

# Define the file appender
log4j.appender.FILE=org.apache.log4j.FileAppender

# Set the name of the file
log4j.appender.FILE.File=${log}/log.out

# Set the immediate flush to true (default)
log4j.appender.FILE.ImmediateFlush=true

# Set the threshold to debug mode
log4j.appender.FILE.Threshold=debug

# Set the append to false, overwrite
log4j.appender.FILE.Append=false

# Define the layout for file appender
log4j.appender.FILE.layout=org.apache.log4j.PatternLayout
log4j.appender.FILE.layout.conversionPattern=%m%n

上記と同等のXML構成ファイルが必要な場合 log4j.properties ファイル、そしてここに内容があります:

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

<appender name="FILE" class="org.apache.log4j.FileAppender">

   <param name="file" value="${log}/log.out"/>
   <param name="immediateFlush" value="true"/>
   <param name="threshold" value="debug"/>
   <param name="append" value="false"/>
   
   <layout class="org.apache.log4j.PatternLayout">
      <param name="conversionPattern" value="%m%n"/>
   </layout>
</appender>

<logger name="log4j.rootLogger" additivity="false">
   <level value="DEBUG"/>
   <appender-ref ref="FILE"/>
</logger>

</log4j:configuration>

上記の構成でlog4j-サンプルプログラムを試すことができます。

複数のファイルにログインする

ファイルサイズが特定のしきい値に達した場合など、特定の理由でログメッセージを複数のファイルに書き込むことができます。

ログ情報を複数のファイルに書き込むには、次を使用する必要があります org.apache.log4j.RollingFileAppender を拡張するクラス FileAppender クラスを作成し、そのすべてのプロパティを継承します。

上記のFileAppenderのパラメーターに加えて、次の構成可能なパラメーターがあります。

プロパティ 説明
maxFileSize これは、ファイルがロールされるファイルのクリティカルサイズです。デフォルト値は10MBです。
maxBackupIndex このプロパティは、作成されるバックアップファイルの数を示します。デフォルト値は1です。

以下はサンプル構成ファイルです log4j.properties RollingFileAppenderの場合。

# Define the root logger with appender file
log4j.rootLogger = DEBUG, FILE

# Define the file appender
log4j.appender.FILE=org.apache.log4j.RollingFileAppender

# Set the name of the file
log4j.appender.FILE.File=${log}/log.out

# Set the immediate flush to true (default)
log4j.appender.FILE.ImmediateFlush=true

# Set the threshold to debug mode
log4j.appender.FILE.Threshold=debug

# Set the append to false, should not overwrite
log4j.appender.FILE.Append=true

# Set the maximum file size before rollover
log4j.appender.FILE.MaxFileSize=5MB

# Set the the backup index
log4j.appender.FILE.MaxBackupIndex=2

# Define the layout for file appender
log4j.appender.FILE.layout=org.apache.log4j.PatternLayout
log4j.appender.FILE.layout.conversionPattern=%m%n

XML構成ファイルが必要な場合は、最初のセクションで説明したものと同じものを生成し、に関連する追加のパラメーターのみを追加できます。 RollingFileAppender

この構成例は、各ログファイルの最大許容サイズが5MBであることを示しています。最大サイズを超えると、新しいログファイルが作成されます。以来maxBackupIndex は2として定義され、2番目のログファイルが最大サイズに達すると、最初のログファイルが消去され、その後、すべてのログ情報が最初のログファイルにロールバックされます。

上記の構成でlog4j-サンプルプログラムを試すことができます。

毎日のログファイルの生成

ログ情報をきれいに記録するために、ログファイルを毎日生成する必要がある場合があります。

毎日ログ情報をファイルに書き込むには、次を使用する必要があります org.apache.log4j.DailyRollingFileAppender を拡張するクラス FileAppender クラスを作成し、そのすべてのプロパティを継承します。

上記のFileAppenderのパラメーターに加えて、構成可能な重要なパラメーターは1つだけです。

プロパティ 説明
DatePattern これは、ファイルをロールオーバーするタイミングと従うべき命名規則を示します。デフォルトでは、ロールオーバーは毎日深夜に実行されます。

DatePatternは、次のいずれかのパターンを使用してロールオーバースケジュールを制御します。

DatePattern 説明
'。' yyyy-MM 毎月の終わりと翌月の初めにロールオーバーします。
'。' yyyy-MM-dd 毎日深夜にロールオーバーします。これがデフォルト値です。
'。' yyyy-MM-dd-a 毎日の正午と深夜にロールオーバーします。
'。' yyyy-MM-dd-HH 1時間ごとにロールオーバーします。
'。' yyyy-MM-dd-HH-mm 毎分ロールオーバーします。
'。' yyyy-ww ロケールに応じて、毎週1日にロールオーバーします。

以下はサンプル構成ファイルです log4j.properties 毎日の正午と深夜にロールオーバーするログファイルを生成します。

# Define the root logger with appender file
log4j.rootLogger = DEBUG, FILE

# Define the file appender
log4j.appender.FILE=org.apache.log4j.DailyRollingFileAppender

# Set the name of the file
log4j.appender.FILE.File=${log}/log.out

# Set the immediate flush to true (default)
log4j.appender.FILE.ImmediateFlush=true

# Set the threshold to debug mode
log4j.appender.FILE.Threshold=debug

# Set the append to false, should not overwrite
log4j.appender.FILE.Append=true

# Set the DatePattern
log4j.appender.FILE.DatePattern='.' yyyy-MM-dd-a

# Define the layout for file appender
log4j.appender.FILE.layout=org.apache.log4j.PatternLayout
log4j.appender.FILE.layout.conversionPattern=%m%n

XML構成ファイルが必要な場合は、最初のセクションで説明したものと同じものを生成し、に関連する追加のパラメーターのみを追加できます。 DailyRollingFileAppender

上記の構成でlog4j-サンプルプログラムを試すことができます。