Java 定义一个日志的时候应该如何定义
2023-09-27 14:20:34 时间
在很多情况下,我们都会使用 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 中。
相关文章
- JAVA已过气?中俄大佬对话告诉你俄罗斯最受欢迎的编程语言是什么!
- java 线程池底层原理详解与源码分析
- Java 调用第三方接口,实战来了!
- 阿里Java岗面试百题:docker导出镜像到本地镜像仓库
- K8S学习笔记之filebeat采集K8S微服务java堆栈多行日志
- 【Java】日志知识总结和经常使用组合配置(commons-logging,log4j,slf4j,logback)
- Java开发 | 安全篇 Cookie设置secure属性
- Java修饰符final小笔记
- Java日志框架——JCL
- ThreadPoolExecutor – Java Thread Pool Example(java线程池创建和使用)
- 彻底理解JAVA动态代理
- Java日志框架:logback详解
- 《Java课程实习》日志(周四)
- 怎样分析java线程堆栈日志
- java项目命令启动 JAVA-jar包运行及日志输出
- java调用阿里云日志SDK 查询日志
- java基本类型(数值范围):浮点的底层表示定义,float计算快一些
- Java锁竞争导致sql慢日志原因分析
- 大数据Java工程师必备____2021年数据结构思维导图!
- Java中调用SQL Server存储过程示例
- Java编程基础:配置log4j2.xml同时输出日志到文件和控制台
- 写给大忙人的ELK最新版6.2.4学习笔记-Logstash和Filebeat解析(java异常堆栈下多行日志配置支持)
- java service wrapper日志参数设置及优化
- Java 程序如何正确地打日志
- 史上最全Java表单验证封装类