我看到下面的代码在类什么是使用静态和实例变量记录
private static final Logger defaultLogger = Logger.getLogger(this.getClass());
private Logger logger = defaultLogger;
我想知道为什么静态和可变instace声明的原因之一?其余的类使用记录器变量。 我们使用Apache log4j作为基础日志库。
我看到下面的代码在类什么是使用静态和实例变量记录
private static final Logger defaultLogger = Logger.getLogger(this.getClass());
private Logger logger = defaultLogger;
我想知道为什么静态和可变instace声明的原因之一?其余的类使用记录器变量。 我们使用Apache log4j作为基础日志库。
有人很懒。代码中的实例引用静态变量。换句话说,只有一个Logger实例(但是两个对象)。
我怀疑这是重构的效果。过去某个时间有人计划使用这两个记录器来做不同的事情,并且他们提到了不同的目的地。然后,第一个被更改为写入同一个。
private Logger logger = defaultLogger;
是需要为
它允许您在以后更改记录器上的每个实例做了最少的功。它默认为类记录器,但可以将其重新映射到其他记录器,可能在某些操作过程中。
请注意,logger
变量是而不是final
出于这个原因。