3

log4j よりも logback を好む理由を調べていたところ、次の点に遭遇しました。

logback-classic は SLF4J をネイティブに話します

logback-classic の Logger クラスは SLF4J API をネイティブに実装しているため、logback-classic を基になる実装として SLF4J ロガーを呼び出す場合、オーバーヘッドは発生しません。さらに、logback-classic はクライアント API として SLF4J の使用を強く推奨しているため、log4j または jul に切り替える必要がある場合は、ある jar ファイルを別の jar ファイルに置き換えることで実行できます。SLF4J API を介してコード ロギングに触れる必要はありません。これにより、ロギング フレームワークの切り替えに伴う作業を大幅に削減できます。

誰かが上記の点を説明してもらえますか?

4

2 に答える 2

3

SLF4J 実装以外のものを使用する場合は、基になる実装で適切なメソッドを呼び出して SLF4J インターフェイスを実装する追加のブリッジが必要です。

これにより、オーバーヘッドが発生します。

logback はインターフェイスを直接実装するため、追加のブリッジは必要ありません => オーバーヘッドはありません。

そうは言っても、ほとんどの場合、オーバーヘッドは非常に小さいため、選択したロギング ライブラリ自体のパフォーマンスへの影響は無視できるため、あまり心配する必要はありません。

于 2012-10-15T06:23:44.987 に答える