を使用してファイルアペンダーを実装する方法はありますか。これにより、特定のサイズのログがメモリlog4j2
に保存され、その後、ログがファイル (ローカル/リモート) に書き込まれます。
これを達成する方法はありますか?
log4j2
のドキュメント: はFastFileAppender
標準に似ていますFileAppender
が、常にバッファリングされ (これをオフにすることはできません)、内部的に のByteBuffer + RandomAccessFile
代わりに を使用しBufferedOutputStream
ます。" " bufferedIO : (boolean) true の場合 - デフォルトでは、レコードがバッファに書き込まれ、バッファがいっぱいになるとデータがディスクに書き込まれます。レコードが書き込まれるときに設定されます。ファイルのロックは、bufferedIO では使用できません。パフォーマンス テストでは、immediateFlush が有効になっている場合でも、バッファー I/O を使用するとパフォーマンスが大幅に向上することが示されています。即時フラッシュ:bufferedIO=true
(ブール値) true に設定されている場合 - デフォルトでは、各書き込みの後にフラッシュが続きます。これにより、データがディスクに書き込まれることが保証されますが、パフォーマンスに影響を与える可能性があります。すべての書き込み後のフラッシュは、同期ロガーでこのアペンダーを使用する場合にのみ役立ちます。非同期ロガーとアペンダーは、immediateFlush が false に設定されていても、イベントのバッチの最後に自動的にフラッシュします。これにより、データがディスクに書き込まれることも保証されますが、より効率的です。
上記の属性を使用することで、ファイルへのデータの書き込みを制御できますが、ログをメモリに保存し、特定のバッファ サイズに達した後にログに記録する方法が見つかりませんでした。
更新: LOG4J2-jira-project に新しい機能のリクエストを追加しました: LOG4J2-401。