-
Java项目如何统一日志框架?_java 日志框架
- 网站名称:Java项目如何统一日志框架?_java 日志框架
- 网站分类:技术文章
- 收录时间:2025-09-23 16:57
- 网站地址:
“Java项目如何统一日志框架?_java 日志框架” 网站介绍
在程序运行的过程中,我们需要在重要的代码逻辑分支点,将关键的程序运行状态信息打印出来,便于我们对程序调试和观察。java项目中有成熟高性能的日志框架,很方便地集成到项目中实现我们对关键信息的打印输出。
当前java主流的日志框架有logback、log4j2、log4j1、jul等。
日志框架 | 简介 |
logback | Ceki Gulcu于2006年设计的又一个开源日志框架,解决log4j1性能问题,目标是替代log4j1 |
log4j1 | Ceki Gulcu于2000年设计的日志框架,Apache开源项目,目前已不再维护 |
log4j2 | 2010年起Apache开源项目,参考logback,解决log4j1设计缺陷及性能问题。采用LMAX Disruptor高性能线程间消息库,据官方性能测试比logback高。 |
jul | java.util.logging Since JDK1.4.0 2002年发布 |
日志门面框架主要有SLF4J(Simple Logging Facade for Java)、JCL(Jakarta Commons Logging)。日志门面是日志输出的抽象接口,具体日志操作实现还需要调用具体的日志框架,日志门面框架可以方便地切换具体的日志框架,而无需修改代码。SLF4J支持logback、log4j1、logj2、jul,而JCL仅支持log4j1、jul。目前SLF4J比JCL流行,SpringBoot项目默认引入SLF4J+logback日志框架。
应用项目中如何统一日志输出呢?
在java项目中我们经常会引入不同的组件类库,这些组件类库有使用到的日志框架也不尽相同,不过最新的组件类库一般都使用了日志门面框架,由开发者根据项目情况引入具体的日志框架。如Spring框架、Fastjson组件等使用JCL门面日志框架,而Mybatis、Quartz等常见组件默认使用SLF4J。下面我们就SLF4J如何统一日志框架进行说明。
下图为SLF4J官网给出的技术原理图:
如上图,jcl日志通过jcl-over-slf4j.jar桥接将日志输出到slf4j-api,进而由具体的日志框架输出;类似的,log4j1通过log4j-over-slf4j.jar桥接,jul日志通过jul-to-slf4j.jar桥接,而最新的log4j2通过log4j-to-slf4j.jar进行桥接。
具体的pom.xml配置如下(参考):
注:未引入jcl-over-slf4j.jar,是因为jcl在没有引入log4j1日志框架时,默认使用jul输出日志,最终由jul-to-slf4j.jar进行桥接到slf4j上。
Springboot自动引入的日志框架
当创建Springboot项目,通过pom继承
spring-boot-starter-parent,或项目中引入spring-boot-starter-web等jar时,则项目会自动默认引入
spring-boot-starter-logging,通过分析其pom依赖:
1.5.9.RELEASE
2.0.0.RELEASE
1 |
|
2 | springboot logging已自动将日志统一到logback日志框架 |
3 |
|
综上分析,只要Spingboot项目引入了
spring-boot-starter-logging,即可将项目日志统一到logback日志框架,从而可灵活控制日志的输出格式或者归集日志到统一的日志中心。
更多相关网站
- 90后注意了!你们出生时就有这么多时髦的鞋子你造么!
- Spring Boot 整合 Log4j2 指南_spring boot slf4j logback
- 110 个主流 Java 组件和框架整理,常用的都有,建议收藏!!
- “老气”单品也可以很时髦_老气很 啥意思
- Log4j2的升级指南_log4j2 level
- 从Log4j2核弹漏洞到性能碾压:为什么现在都用Logback?
- 知识总结-Java日志框架Log4j、Log4j2、logback、slf4j、简介
- Java框架研发思考_java做框架
- 干掉Logback,试试这款性能最强的日志框架
- 详解C++高性能无锁队列的原理与实现
- 高性能队列Disruptor的初体验!_java高性能队列
- 我用半天时间解决了困扰团队一年多的cpu使用率过高问题
- Disruptor核心组件_核心处理组件
- Disruptor框架源码阅读-如何不重复消费
- 高性能并发队列Disruptor使用详解
- 最近发表
- 标签列表
-
- mydisktest_v298 (35)
- sql 日期比较 (33)
- document.appendchild (35)
- 头像打包下载 (35)
- 梦幻诛仙表情包 (36)
- java面试宝典2019pdf (26)
- disk++ (30)
- 加密与解密第四版pdf (29)
- iteye (26)
- centos7.4下载 (32)
- intouch2014r2sp1永久授权 (33)
- jdk1.8.0_191下载 (27)
- axure9注册码 (30)
- 兔兔工程量计算软件下载 (27)
- ccproxy破解版 (31)
- aida64模板 (28)
- engine=innodb (33)
- shiro jwt (28)
- segoe ui是什么字体 (27)
- head first java电子版 (32)
- clickhouse中文文档 (28)
- jdk-8u181-linux-x64.tar.gz (32)
- 计算机网络自顶向下pdf (34)
- -dfile.encoding=utf-8 (33)
- jdk1.9下载 (32)