在 Java 中,为什么声明记录器是最佳实践static final
?
private static final Logger S_LOGGER
-
private
- 这样其他班级就不能hijack你的记录器
-
static
- 因此每个类只有一个记录器实例,也避免了尝试序列化记录器
-
final
- 无需在类的生命周期内更改记录器
另外,我更喜欢名字log
尽可能简单,但具有描述性。
编辑:但是这些规则有一个有趣的例外:
protected final Logger log = LoggerFactory.getLogger(getClass());
与以下相反:
private static final Logger log = LoggerFactory.getLogger(Foo.class);
前一种方法允许您在整个继承层次结构中的所有类中使用相同的记录器名称(实际类的名称)。因此,如果Bar
延伸Foo
,两者都会登录到Bar
记录器。有些人觉得它更直观。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)