同じコンテナーにデプロイされ、同期して動作するさまざまな EJB は、同じ log4j.xml と同じ FileAppender を使用するという条件で、同じ .log ファイルにリスクなしでアプリケーション ログを書き込むことができます。
私のデスクトップでは動作することを確認しましたが、これらの EJB が高負荷で動作しているとどうなりますか? ファイルのロックや遅延の問題について心配する必要がありますか?
心から、
同じコンテナーにデプロイされ、同期して動作するさまざまな EJB は、同じ log4j.xml と同じ FileAppender を使用するという条件で、同じ .log ファイルにリスクなしでアプリケーション ログを書き込むことができます。
私のデスクトップでは動作することを確認しましたが、これらの EJB が高負荷で動作しているとどうなりますか? ファイルのロックや遅延の問題について心配する必要がありますか?
心から、
はい、同じアプリケーションサーバーインスタンス内の複数のEJBが同じアペンダーに書き込むことができます。これらは1つのJVMの一部であり、log4jはスレッドセーフです。
確かに、高負荷では遅延が発生します。しかし、それがログレベルの目的です。重要なレベルでできるだけ少ないステートメントをログに記録し、デバッグレベルで詳細に記述します。
同じファイルアペンダーを共有することは可能ですが(ほとんどの場合、機能しているように見えます)、特にローリングポリシーが設定されている場合は危険です。この方法でログを失うリスクがあります。log4jはこのために設計されていません。