Java 定义一个日志的时候应该如何定义

在不少状况下,咱们都会使用 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 中。


https://blog.ossez.com/archives/3221

相关文章
相关标签/搜索