4

ロギングに SLF4J を使用し始めましたが、最初に私に突き刺さったのは次のコードです。

public class MyClass
{
   private static final logger = org.slf4j.LoggerFactory.getLogger(MyClass.class)
}

クラスを引数として使用して logger のインスタンスを取得する設計原理またはロジックは何ですか?

4

2 に答える 2

8

この結果、そのロガーによって生成された各ロギングステートメントにはクラスの名前が含まれます。これを行うには、次のようにします。

  1. 出力でそのロギングメッセージのソースを特定します
  2. これらのメッセージを効果的にフィルタリングします。クラスおよび/または含まれているパッケージごとに無効化メッセージを有効にできます。たとえば、すべてのDAOパッケージメッセージを無効にしたい場合があります(何らかの理由で)

上記は、ロギングで非常に一般的なパターンです。ただし、クラスを提供するだけでなく、代わりに独自の文字列を提供して、メッセージを自分で任意に分類できることに注意してください。

于 2012-06-05T10:05:00.873 に答える
2

これは単なる短縮版です。パラメータを取るがあることを確認するには、LoggerFactoryの javadoc を参照してください。constuctorString

基本的に、ロガーを使用する場合、ほとんどの場合、ロガーが宣言されているクラスの名前を使用してロガーに名前を付けます。

于 2012-06-05T10:07:58.567 に答える