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-サンプルプログラムを試すことができます。