2

を使用してファイルアペンダーを実装する方法はありますか。これにより、特定のサイズのログがメモリlog4j2に保存され、その後、ログがファイル (ローカル/リモート) に書き込まれます。 これを達成する方法はありますか?

log4j2

のドキュメント: はFastFileAppender標準に似ていますFileAppenderが、常にバッファリングされ (これをオフにすることはできません)、内部的に のByteBuffer + RandomAccessFile代わりに を使用しBufferedOutputStreamます。" " bufferedIO : (boolean) true の場合 - デフォルトでは、レコードがバッファに書き込まれ、バッファがいっぱいになるとデータがディスクに書き込まれます。レコードが書き込まれるときに設定されます。ファイルのロックは、bufferedIO では使用できません。パフォーマンス テストでは、immediateFlush が有効になっている場合でも、バッファー I/O を使用するとパフォーマンスが大幅に向上することが示されています。即時フラッシュ:bufferedIO=true



(ブール値) true に設定されている場合 - デフォルトでは、各書き込みの後にフラッシュが続きます。これにより、データがディスクに書き込まれることが保証されますが、パフォーマンスに影響を与える可能性があります。すべての書き込み後のフラッシュは、同期ロガーでこのアペンダーを使用する場合にのみ役立ちます。非同期ロガーとアペンダーは、immediateFlush が false に設定されていても、イベントのバッチの最後に自動的にフラッシュします。これにより、データがディスクに書き込まれることも保証されますが、より効率的です。

上記の属性を使用することで、ファイルへのデータの書き込みを制御できますが、ログをメモリに保存し、特定のバッファ サイズに達した後にログに記録する方法が見つかりませんでした。

更新: LOG4J2-jira-project に新しい機能のリクエストを追加しました: LOG4J2-401

4

1 に答える 1

1

最新のベータ (ベータ 9、数日後にリリース予定) の時点で、ユーザーは FileAppender または RandomAccessFileAppender のバッファ サイズを制御できません。(FastFileAppender は beta-9 で RandomAccessFileAppender に名前が変更されました。)

参考までに、FileAppender のバッファ サイズは 8192 バイト、RandomAccessFileAppender のバッファ サイズは 262,144 バイトです。

バッファ サイズを制御する必要がある場合は、log4j2 イシュー トラッカーまたはユーザー メーリング リストで機能リクエストを提出してください。


更新: LOG4J2-401 は RC1 で修正されました。RC2 以降、RollingRandomAccessFileAppender と RollingFileAppender のバッファー サイズも構成可能になりました。

于 2013-09-15T06:54:37.400 に答える