我正在使用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(...);
}
}
答案 0 :(得分:6)
有两个非常重要的原因可能导致单个静态(可能是最终的)实例比始终调用getLogger
更好。
Logger.getLogger
,则需要支付非常小的性能损失。除非你在一个紧凑的循环中调用数百万次,否则不必担心,但它就在那里。尽管如此,个人偏好比这些原因要重要得多。选项1是一种常见的方法,但如果您更喜欢选项2,那么一定要使用它。这不会伤害你的代码。
答案 1 :(得分:0)
他们只受益我看到更短的日志行使代码看起来更清晰。但是 - 实际上在运行时没有区别