每次我需要时使用Logger.getLogger()或每个类创建一次

pow*_*pow 9 java java.util.logging

我正在使用Java util Logger.根据Logger.getLogger方法的文档,它说:"为命名的子系统查找或创建一个记录器.如果已经使用给定名称创建了一个记录器,则返回该记录器.否则将创建一个新的记录器." 每节课只召唤一次会有什么好处吗?

选项1:

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

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

    public void method2() {
        logger.log(....);
    }
}
Run Code Online (Sandbox Code Playgroud)

选项2:

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

    public void method2() {
        Logger.getLogger(Myclass.class).log(...);
    }
}
Run Code Online (Sandbox Code Playgroud)

Cam*_*ner 6

有两个不是非常重要的原因,为什么单个静态(可能是最终的)实例比一直调用更好getLogger.

  1. 它使代码更容易阅读(在我看来).
  2. 有一个非常如果你打电话给你支付少量的性能损失Logger.getLogger所有的时间.除非你在一个紧密的循环中调用它数百万次,否则不用担心,但它就在那里.

也就是说,个人偏好比其中任何一个原因都重要得多.选项1是一种常见的方法,但如果您更喜欢选项2,那么一定要使用它.它不会伤害你的代码.