28

Javaで利用可能なロギングフレームワークに関する次の記事を読みました:http: //michaelandrews.typepad.com/the_technical_times/2011/04/java-logging-reconsidered.html

著者は、LogbackでSLF4Jを使用することに言及しました。Logbackを直接使用するのとはどう違うのですか。LogbackはSLF4Jの上に構築されているため、SLF4Jを使用するのではなく、Logbackを直接使用する方がよいのではないでしょうか。

4

2 に答える 2

44

SLF4J は、追加レイヤーなしで Logback によって実装される単なるインターフェースであるため、Logback にオーバーヘッドを追加していません。

単純にSLF4Jを使用する必要があります...

  1. 必要に応じて、Logback から切り替えることができます。
  2. 輸入品が少なくても、費用はかかりません;)
  3. 他の人は、あなたが SLF4J を使用していることを気に入り、特定のロギング フレームワークを直接使用していることを嫌うでしょう。

Logback に直接アクセスする唯一の場所は、アプリケーションでログを手動で (再) 構成するときです。これが必要になることは時折ありますが、その場合でも、Logback の操作は単一のクラスまたはメソッドに制限されます。

経験則として、アプリケーションが使用しているログを定義している間、ライブラリは常にログの抽象化を使用する必要があり、必要に応じて直接アクセスする必要があります。

于 2011-05-01T10:37:25.827 に答える
5

SLF4Jはほとんどオーバーヘッドを追加せず、Lo​​gbackにはネイティブバインディングがあります。

将来、他のロギングフレームワークに切り替える必要がないことが100%わかっている場合は、logbacknativeを使用してください。ただし、SLF4Jではある程度の抽象化が可能であり、ロギングバックエンドを瞬時に切り替えることができます。

ログバックはSLF4Jの上に構築されていません。SLF4Jは、ロギングのための抽象化フレームワークです。ロギング自体は行いません。ロギングのための統一されたインターフェースを提供するだけです。

于 2011-04-29T07:59:01.327 に答える