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