SFL4J ロギングの推奨パターンは次のとおりであることを指摘する、大量の投稿や文書 (このサイトおよび他の場所) を読みました。
public class MyClass {
final static Logger logger = LoggerFactory.getLogger(MyClass.class);
public void myMethod() {
//do some stuff
logger.debug("blah blah blah");
}
}
私の上司は、ラッパーを使用してログ呼び出しをインターセプトし、すべてのクラスでロガーを宣言する定型コードを避けることを好みます。
public class MyLoggerWrapper {
public static void debug(Class clazz, String msg){
LoggerFactory.getLogger(clazz).debug(msg));
}
}
単純に次のように使用します。
public class MyClass {
public void myMethod() {
//do some stuff
MyLoggerWrapper.debug(this.getClass(), "blah blah blah");
}
}
ログを記録するたびにロガーをインスタンス化するのは多少コストがかかると思いますが、その仮定を裏付けるドキュメントを見つけることができませんでした。それに加えて、彼は確かにフレームワーク (LogBack または Log4J をまだ決定中です) がロガーを「キャッシュ」し、いずれにせよサーバーが容量をはるかに下回る状態で実行されているため、問題ではないと述べています。
このアプローチの潜在的な問題を指摘する助けはありますか?