Apache-Tomcat では、log4j や java.util.logging などのロギング フレームワークを使用して、catalina.out (デフォルトの動作) にダンプされる stdout への出力よりもパフォーマンス上の利点がありますか?
ログに記録されたメッセージに特別な書式を設定する必要がないため、機能的にはどちらも私のユースケースと同じです。
ここでロギング フレームワークを使用する利点を知りたいです。
前もって感謝します!
パフォーマンス上の利点は見られません。その観点から、機能を提供するものは何でも使用してください。
とにかくlog4jのようなものを追加するのはとても簡単で、将来の柔軟性が非常に高くなるため、現在の要件がどれほど制限されていても、Webアプリケーションの出力にstdoutに頼ることさえ考えられません.
編集: メッセージの書式設定だけでなく、ログエントリを書いたクラス、コード行、スレッド名などを含めることもできます。ロギング フレームワークであり、stdout では利用できません。
書式設定以外にも、コンソールに出力する代わりにロガーを使用することには多くの利点があります。そしてパフォーマンスも。たとえば、ログレベルの前に簡単に切り替えて、パフォーマンスを向上させることができます。logback のような適切なロガーを使用すると、追加のパフォーマンスを達成できます。たとえば、logback には、ログ メッセージに機能使用プレースホルダーがあります。
log.debug ("Result of big function = {}", bigAndLongMethod())
これはより速くなります
log.debug("Result of big function = " + bigAndLongMethod())
bigAndLongMethod()
ログレベルがデバッグよりも高い場合、最初のケースでは実行されないためです。
追加のアペンダーを使用すると、パフォーマンスが向上します。つまり、ログを他のホストにリダイレクトしたり、データベースにログインしたりできます。
追加の利点として、プロジェクトでより多くの標準準拠のログサポートを取得し、現在は違いが見られなくても、将来的にはより満足できるようになります.