在不少状况下,咱们都会使用 SLF4J 来定义日志。日志
那么如何定义一个 Logger 呢?code
相信绝大部分人都会定义为:继承
private static final Logger logger = LoggerFactory.getLogger(BigDecimalDemoUnitTest.class);
生命周期
可是咱们为何要使用 private static final 来进行修饰呢?ci
同时,你能够定义变量 log 来替代 logger,这样可以减小输入的字符数。固然这个也须要根据你的项目要求来定了。get
固然还有下面的一种状况,考察日志代码:it
protected final Logger log = LoggerFactory.getLogger(getClass());
class
上面有关日志的定义与咱们的规则是彻底相反的。变量
上面的代码容许你在全部具备继承关系的类中使用相同的日志名(与实际的类名相同)。序列化
例如:
若是类 Bar Extends Foo,那么上面 2 个类的日志将会 log 到 Bar logger 中。