前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Java 定义一个日志的时候应该如何定义

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

作者头像
HoneyMoose
修改2020-02-26 08:47:25
4730
修改2020-02-26 08:47:25
举报
文章被收录于专栏:CWIKIUSCWIKIUS

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

那么如何定义一个 Logger 呢?

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

代码语言:javascript
复制
private static final Logger logger = LoggerFactory.getLogger(BigDecimalDemoUnitTest.class);

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

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

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

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

代码语言:javascript
复制
protected final Logger log = LoggerFactory.getLogger(getClass());

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

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

例如:

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

本文系转载,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文系转载前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
日志服务
日志服务(Cloud Log Service,CLS)是腾讯云提供的一站式日志服务平台,提供了从日志采集、日志存储到日志检索,图表分析、监控告警、日志投递等多项服务,协助用户通过日志来解决业务运维、服务监控、日志审计等场景问题。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档