1

Apache-Tomcat では、log4j や java.util.logging などのロギング フレームワークを使用して、catalina.out (デフォルトの動作) にダンプされる stdout への出力よりもパフォーマンス上の利点がありますか?

ログに記録されたメッセージに特別な書式を設定する必要がないため、機能的にはどちらも私のユースケースと同じです。

ここでロギング フレームワークを使用する利点を知りたいです。

前もって感謝します!

4

2 に答える 2

1

パフォーマンス上の利点は見られません。その観点から、機能を提供するものは何でも使用してください。

とにかくlog4jのようなものを追加するのはとても簡単で、将来の柔軟性が非常に高くなるため、現在の要件がどれほど制限されていても、Webアプリケーションの出力にstdoutに頼ることさえ考えられません.

編集: メッセージの書式設定だけでなく、ログエントリを書いたクラス、コード行、スレッド名などを含めることもできます。ロギング フレームワークであり、stdout では利用できません。

于 2013-02-11T15:30:56.660 に答える
0

書式設定以外にも、コンソールに出力する代わりにロガーを使用することには多くの利点があります。そしてパフォーマンスも。たとえば、ログレベルの前に簡単に切り替えて、パフォーマンスを向上させることができます。logback のような適切なロガーを使用すると、追加のパフォーマンスを達成できます。たとえば、logback には、ログ メッセージに機能使用プレースホルダーがあります。

log.debug ("Result of big function = {}", bigAndLongMethod())

これはより速くなります

log.debug("Result of big function = " + bigAndLongMethod())

bigAndLongMethod()ログレベルがデバッグよりも高い場合、最初のケースでは実行されないためです。

追加のアペンダーを使用すると、パフォーマンスが向上します。つまり、ログを他のホストにリダイレクトしたり、データベースにログインしたりできます。

追加の利点として、プロジェクトでより多くの標準準拠のログサポートを取得し、現在は違いが見られなくても、将来的にはより満足できるようになります.

于 2013-02-11T15:37:58.123 に答える