1

ときどき、次のようなコードに出くわします。

private final Logger log = LoggerFactory.getLogger(MyClass.class);

slf4jこれがロガーオブジェクトであるとしましょう。Apache Commons Loggingを使用している場合は、Logではなくクラスが呼び出されLoggerます。

私はこの問題を少し考えており、以下の 2 つのオプションについていくつかの長所と短所を挙げています。

logger代わりに使用する理由log

  1. 目的: ログ自体ではなく、ログのライターです。
  2. 誤解を招く:logログから読み取ることができないため、本質的に誤解を招く名前です。

log代わりに使用する理由logger

  1. メソッド呼び出しの読みやすさ : Logger で使用できるメソッドには、通常、 などの名前が付けられinfo()ますerror()。そのためlog.error()、「log this error」のように大声で発声されたコマンドに似たものになりますが、どのように聞こえるlogger.error()かは言うまでもなく、ロガー自体のエラーを報告しているように見えます。logger.debug()

それで、今質問です。その厄介な Logger に名前を付けるための 3 番目のオプションはありますか? プロジェクトで何を使用し、その理由は何ですか?

4

1 に答える 1

4

その厄介な Logger に名前を付けるための 3 番目のオプションはありますか?

好きなように呼ぶことができます。でもlumberjack、それで幸せになれるなら1

プロジェクトで何を使用し、その理由は何ですか?

現在使用しているロギング フレームワークによって指定されたクラス名を使用します。最近では、私のコードを再利用する可能性のある人々がログの選択によって妨げられないように、SLF4J ログ ファサード ライブラリを使用しています。

logインスタンス変数の名前として使用する傾向がありLOGますstatic final。なんで?1) 従来型であり、2) 文字数が少ないためです。いずれにせよ、読者は私のコードで使用している規則をすぐに理解できます。


1 - この質問に対する私の意見をほぼ要約すると...

于 2013-05-22T10:12:46.643 に答える