定义 Logger 为什么要用 static 和 final

847 阅读1分钟

今天把 logger 的定义全部改成 static final,例如:

private static final Logger logger= LoggerFactory.getLogger(xxx.class);

主要是出于以下两点考虑

  1. 出于资源利用的考虑,Logger 的构造方法参数是 Class,决定了 Logger 是根据类的结构来进行区分日志,所以一个类只要一个 Logger 就可以了,故static
  2. final表示一种编程习惯,表示该类的Logger只是记录该类的信息,否则日志会无法提供可以令人信服的记录