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 中。

link

相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
目录
相关文章
|
20天前
|
Java
使用Java代码打印log日志
使用Java代码打印log日志
73 1
|
1月前
|
Java
【Java每日一题】— —第二十一题:编程把现实生活的手机事物映射成一个标准类Phone,并定义一个测试类PhoneDemo测试Phone类的功能
【Java每日一题】— —第二十一题:编程把现实生活的手机事物映射成一个标准类Phone,并定义一个测试类PhoneDemo测试Phone类的功能
35 0
|
1月前
|
前端开发 Java API
类加载器“如果我定义了一个类名与Java核心类类名相同,那它还能被加载吗?”
类加载器“如果我定义了一个类名与Java核心类类名相同,那它还能被加载吗?”
|
1月前
|
安全 Java 数据库连接
【Java每日一题】——第二十八题:编程定义一个学生类汽车类Car
【Java每日一题】——第二十八题:编程定义一个学生类汽车类Car
51 0
|
1月前
|
安全 Java 数据库连接
【Java每日一题】— —第二十六题:编程定义一个经理类Manager。
【Java每日一题】— —第二十六题:编程定义一个经理类Manager。
48 1
|
1月前
|
Dubbo Java 应用服务中间件
Dubbo日志文件输出到指定目录 如何定义?
Dubbo日志文件输出到指定目录 如何定义?
|
4天前
|
JavaScript Java 测试技术
基于Java的公司员工工作日志办公系统的设计与实现(源码+lw+部署文档+讲解等)
基于Java的公司员工工作日志办公系统的设计与实现(源码+lw+部署文档+讲解等)
28 3
|
5天前
|
Java
Java接口中可以定义哪些方法?
【4月更文挑战第13天】
6 0
Java接口中可以定义哪些方法?
|
17天前
|
Java
在Java中,定义一个接口的步骤如下
【4月更文挑战第6天】在Java中,定义一个接口的步骤如下
5 1
|
1月前
|
Java
Java类的定义与对象使用实例
Java类的定义与对象使用实例
16 3

热门文章

最新文章