SoftwareEngineering/Java/Logging/ApacheLog4j2
RollingFileAppenderは、fileNameパラメータで指定されたFileに書き込み、TriggeringPolicyおよびRolloverPolicyに従ってファイルをロールオーバーするOutputStreamAppenderです。 RollingFileAppenderは、実際にファイルI / Oを実行してロールオーバーを実行するために、OutputStreamManagerを拡張するRollingFileManagerを使用します。 異なる構成からのRolloverFileAppendersは共有できませんが、マネージャにアクセス可能であれば、RollingFileManagersを使用できます。 たとえば、サーブレットコンテナ内の2つのWebアプリケーションは、Log4jが両方に共通のClassLoaderにある場合、独自の構成を持ち、同じファイルに安全に書き込むことができます。
RollingFileAppenderは必要ですTriggeringPolicyとRolloverStrategyを。 トリガポリシーは、ロールオーバーを実行するかどうかを決定しますが、ロールオーバストラテジはロールオーバーの実行方法を定義します。 RolloverStrategyが設定されていない場合、RollingFileAppenderはDefaultRolloStrategyを使用します。 log4j-2.5以降、ロールオーバー時に実行するDefaultRolloStrategyのカスタム削除アクションを設定できます。 ファイル名が設定されていない場合は2.8であるため、DefaultRolloStrategyの代わりにDirectWriteRolloStrategyが使用されます。 log4j-2.9以降、カスタムPOSIXファイル属性ビューアクションは、ロールオーバー時に実行するようにDefaultRolloStrategyで設定できます。 定義されていない場合は、RollingFileAppenderの継承POSIXファイル属性ビューが適用されます。
ファイルのロックは、RollingFileAppenderによってサポートされていません。
パラメータ名 | タイプ | 説明 |
append | boolean | trueの場合、デフォルトのレコードがファイルの末尾に追加されます。 falseに設定すると、新しいレコードが書き込まれる前にファイルがクリアされます。 |
bufferedIO | boolean | trueの場合、デフォルトのレコードはバッファに書き込まれ、バッファがいっぱいになるとディスクに書き込まれます。 また、immediateFlushが設定されている場合は、レコードが書き込まれます。 ファイルロックは、bufferedIOでは使用できません。 パフォーマンステストでは、バッファ付きI / Oを使用すると、immediateFlushが有効になっていても、パフォーマンスが大幅に向上することが示されています。 |
bufferSize | int | bufferedIOがtrueの場合、これはバッファサイズで、デフォルトは8192バイトです。 |
createOnDemand | boolean | アペンダーはオンデマンドでファイルを作成します。 アペンダーは、ログイベントがすべてのフィルターを通過し、このアペンダーにルーティングされるときにのみファイルを作成します。 デフォルトはfalseです。 |
filter | Filter | このアペンダーがイベントを処理するかどうかを決定するフィルター。 CompositeFilterを使用すると、複数のフィルタを使用できます。 |
fileName | String | 書き込むファイルの名前。 ファイルまたはその親ディレクトリのいずれかが存在しない場合、ファイルが作成されます。 |
filePattern | String | アーカイブされたログファイルのファイル名のパターン。 パターンのフォーマットは、使用されるRolloverPolicyに依存します。 DefaultRolloPolicyは、 SimpleDateFormatと互換性のある日付/時刻パターンおよび/または整数カウンタを表す%iの両方を受け入れます。 このパターンは実行時の補間もサポートしているため、Lookup(DateLookupなど)のいずれもパターンに含めることができます。 |
immediateFlush | boolean | trueに設定すると、デフォルトでは、各書き込みの後にフラッシュが続きます。 これにより、データがディスクに書き込まれることは保証されますが、パフォーマンスに影響を与える可能性があります。 書き込みごとにフラッシュするのは、同期ロガーでこのアペンダーを使用する場合にのみ有効です。 immediateFlushがfalseに設定されていても、非同期ロガーとアペンダーはイベントのバッチの最後に自動的にフラッシュします。 これにより、データがディスクに書き込まれることも保証されますが、より効率的です。 |
layout | Layout | LogEventの書式設定に使用するレイアウト。 レイアウトが指定されていない場合は、デフォルトパターンレイアウト "%m%n"が使用されます。 |
name | String | アペンダーの名前。 |
policy | TriggeringPolicy | ロールオーバが発生するかどうかを判断するために使用するポリシー。 |
strategy | RolloverStrategy | アーカイブファイルの名前と場所を決定するための戦略。 |
ignoreExceptions | boolean | デフォルトはtrueです。 イベントを追加する際に例外が発生し、内部的にログに記録され、無視されます。 falseに設定すると、代わりに例外が呼び出し元に伝播されます。 このAppenderをFailoverAppenderでラップするときは、これをfalseに設定する必要があります。 |
filePermissions | String | ファイルが作成されるたびに適用されるPOSIX形式のファイル属性パーミッション。 基底ファイルシステムは、POSIXファイル属性ビューをサポートしなければならない。 例:rw -------またはrw-rw-rw- etc ... |
fileOwner | String | ファイル所有者は、ファイルが作成されるたびに定義します。 セキュリティ上の理由からファイルの所有者を変更することが制限されている可能性があります。 _POSIX_CHOWN_RESTRICTEDがパスに対して有効な場合、ファイルのユーザーIDまたは適切な特権を持つ実効ユーザーIDを持つプロセスのみがファイルの所有権を変更する可能性があります。 基本ファイルシステムは、ファイル所有者属性ビューをサポートしなければならない。 |
fileGroup | String | ファイルが作成されるたびに定義するファイルグループ。 基底ファイルシステムは、POSIXファイル属性ビューをサポートしなければならない。 |