在很多情况下,我们都会使用 SLF4J 来定义日志。
那么如何定义一个 Logger 呢?
相信绝大部分人都会定义为:
[Java] 纯文本查看 复制代码
|
1
|
private static final Logger logger = LoggerFactory.getLogger(BigDecimalDemoUnitTest.class);
|
但是我们为什么要使用 private static final 来进行修饰呢?
private – 没有其他类可以劫持你的日志
static – 因为使用了静态,所以每一个类就只有一个日志,同时可以避免尝试序列化日志
final – 在类的生命周期中,不需要修改日志
同时,你可以定义变量 log 来替代 logger,这样能够减少输入的字符数。当然这个也需要根据你的项目要求来定了。
static – 因为使用了静态,所以每一个类就只有一个日志,同时可以避免尝试序列化日志
final – 在类的生命周期中,不需要修改日志
同时,你可以定义变量 log 来替代 logger,这样能够减少输入的字符数。当然这个也需要根据你的项目要求来定了。
当然还有下面的一种情况,考察日志代码:
[Java] 纯文本查看 复制代码
|
1
|
protected final Logger log = LoggerFactory.getLogger(getClass());
|
上面有关日志的定义与我们的规则是完全相反的。
上面的代码允许你在所有具有继承关系的类中使用相同的日志名(与实际的类名相同)。
例如:
如果类 Bar Extends Foo,那么上面 2 个类的日志将会 log 到 Bar logger 中。
本文深入探讨了在Java应用中使用SLF4J定义日志的常见方式,解释了为什么使用private static final修饰符,并对比了两种不同的日志实例化方法,帮助开发者更好地理解和应用日志记录。
181

被折叠的 条评论
为什么被折叠?



