9

我正在使用 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(....);
    }
}

选项 2:

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

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

2 回答 2

6

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

  1. 它使代码更容易阅读(在我看来)。
  2. 如果你一直打电话,你会付出非常小的性能损失Logger.getLogger。除非您在紧密的循环中调用它数百万次,否则无需担心,但它就在那里。

也就是说,个人偏好比这两个原因中的任何一个都重要得多。选项 1 是一种常用方法,但如果您更喜欢选项 2,那么请务必使用它。它不会损害您的代码。

于 2011-06-03T03:42:30.887 回答
0

我看到的唯一好处是更短的日志行使代码看起来更清晰。但是 - 实际上在运行时没有区别

于 2011-06-03T02:20:58.500 回答