9

Java util Logger を使用しています。Logger.getLogger メソッドのドキュメントによると、「名前付きサブシステムのロガーを検索または作成します。ロガーが指定された名前で既に作成されている場合は、それが返されます。それ以外の場合は、新しいロガーが作成されます。」. クラスごとに1回だけ呼び出すことにはまだ利点がありますか?

オプション1:

public class Myclass 
    static Logger logger = Logger.getLogger(Myclass.class);

    public void method1() {
        logger.log(...);
    }

    public void method2() {
        logger.log(....);
    }
}

オプション 2:

public class Myclass {
    public void method1() {
        Logger.getLogger(Myclass.class).log(...);
    }

    public void method2() {
        Logger.getLogger(Myclass.class).log(...);
    }
}
4

2 に答える 2

6

静的 (おそらく最終) インスタンスを 1 つ持つ方が常に呼び出すよりも優れている理由は、それほど重要ではありませんが 2 つありますgetLogger

  1. これにより、コードが少し読みやすくなります (私の意見では)。
  2. 常に呼び出しを行うと、ごくわずかなパフォーマンス ペナルティが発生Logger.getLoggerします。タイトなループで何百万回も呼び出す場合を除き、心配する必要はありませんが、そこにあります。

とはいえ、個人的な好みは、これらの理由のいずれよりもはるかに重要です. オプション 1 は一般的なアプローチですが、オプション 2 を好む場合は、必ずそれを使用してください。コードを傷つけることはありません。

于 2011-06-03T03:42:30.887 に答える
0

ログ行が短いとコードがより明確に見えるという利点しかありません。しかし、実際には実行時に違いはありません

于 2011-06-03T02:20:58.500 に答える