我正在使用 Java util Logger。根据 Logger.getLogger 方法的文档,它说,“为命名子系统查找或创建一个记录器。如果已经使用给定名称创建了一个记录器,则返回它。否则将创建一个新的记录器。”。每个类(class)只调用一次它还有什么好处吗?
选项 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(...);
}
}
最佳答案
有两个不太重要的原因可以解释为什么拥有一个静态(可能是最终的)实例比一直调用 getLogger
更好。
- 它使代码更易于阅读(在我看来)。
- 如果您一直调用
Logger.getLogger
,您会付出非常的性能损失。除非您在紧密循环中调用它数百万次,否则无需担心,但它就在那里。
也就是说,个人偏好比这两个原因中的任何一个都重要得多。选项 1 是一种常见的方法,但如果您更喜欢选项 2,则一定要使用它。它不会损害您的代码。
关于java - 每次需要时都使用 Logger.getLogger() 或每个类(class)创建一次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6222365/