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

在很多情况下,我们都会使用 SLF4J 来定义日志。

那么如何定义一个 Logger 呢?

 

相信绝大部分人都会定义为:

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

但是我们为什么要使用 private static final 来进行修饰呢?

  • private - 没有其他类可以劫持你的日志
  • static - 因为使用了静态,所以每一个类就只有一个日志,同时可以避免尝试序列化日志
  • final - 在类的生命周期中,不需要修改日志

同时,你可以定义变量 log 来替代 logger,这样能够减少输入的字符数。当然这个也需要根据你的项目要求来定了。

当然还有下面的一种情况,考察日志代码:

protected final Logger log = LoggerFactory.getLogger(getClass());

上面有关日志的定义与我们的规则是完全相反的。

上面的代码允许你在所有具有继承关系的类中使用相同的日志名(与实际的类名相同)。

 

例如:

如果类 Bar Extends Foo,那么上面 2 个类的日志将会 log 到 Bar logger 中。

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

posted @   huyuchengus  阅读(262)  评论(0编辑  收藏  举报
编辑推荐:
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)
点击右上角即可分享
微信分享提示