2011-07-22 7 views
0

誰かがストリームでのlog4jの処理方法を知っていますか?Log4j - ログファイル

各行のログファイルを開いたり閉じたりするだけの場合、または単にオープンストリームを流してフラッシュするだけの場合は、

答えて

1

各行のログファイルを開いたり閉じたりすることはありません(オーバーヘッドが大きくなります)。出力はバッファリングできます(documentationを確認してください)。あなたはすべての行を追加するためにファイルを開くカスタムアペンダーを作成することができますが、何を達成しようとしていますか?

+0

実際には、それがアプリケーションの要求方法を知りたかっただけでした。 – Smolda

+0

私はあなたのアプリケーションのlog4jパフォーマンスオーバーヘッドについてあまり心配しません。本番環境では、例えばエラーのみを記録することができます。場合によっては、メッセージのログ作成(オブジェクトの連結およびシリアル化)の作成について少しは考えるべきです。しかし、あなたがそれを測定してボトルネックと判断した場合は、このようなものを最適化するだけです(早めの最適化はすべての悪の根源です)) – ivy

+0

ありがとう..非常に便利です:) – Smolda

2

1つのことが気になります。 log4jがログファイルを開いたままにしておくと、ファイルハンドルが古いログファイルを指しているため、ログのロールオーバーは失敗します。オープン、書き込み、クローズを行うと、log4jは新しいログファイルのファイルハンドルを正しく取得します。

関連する問題