本文主要介绍
1.日志框架基本介绍及Spring Boot中默认使用框架(SLF4J+LogBack);
2.SLF4J的使用
3.项目中日志框架统一问题
4.Spring Boot中如何实现日志框架统一问题(3的最佳实践)
一般情况下搭建日志框架时,搭建 日志抽象层(定义接口) + 日志实现层组合 ,项目代码中应该使用抽象层,不应该使用日志实现类;
常见的日志框架包含:
日志抽象层: JCL(2014年不再维护), SLF4J,jboss-logging
日志实现层:jul(java.util.logging,jdk工具包下提供的),log4j, LogBack(log4j存在性能问题,logback是基于SLF4J抽象层编写的实现层), log4j2 (Apache下的,功能强大,但与其他的框架整合并不广泛)
(注:SLF4J,log4j,logback为同一个作者)
Spring框架选择了JCL作为默认日志输出;Spring Boot选择的是 SLF4J + LogBack作为默认日志;
SLF4J日志框架基本使用 (抽象层 + 实现层)
1,引入SLF4J的Jar
2,引入实现层(log4j, jul等)对应的jar
3,引入对应实现层的slf4j适配器jar (适配器jar由SLF4J提供的,编写了SLF4J接口类的实现,不同适配器实现接口时,调用的是对应的实现层框架的方法;实现层为Logback时,不需要适配器jar,因为logback就是基于SLF4J抽象层编写);
当项目中引入多个第三方jar,而每个jar底层使用的日志选型不一样,造成项目中日志框架混乱【Spring(commons logging)、Hibernate(jboss-logging)】
SLF4J提供的解决方案:引用第三方jar时,exclude对应的底层日志A.jar,引入由SLF4J提供的日志转换器 B.jar(当前适配器B.jar 定义了A.jar中一摸一样的类和方法,方法中通过调用SLF4J的API实现)
具体步骤:
Spring Boot 中使用的默认的日志框架为 SLF4J + LogBack
版权说明 : 本文为转载文章, 版权归原作者所有 版权申明
原文链接 : https://blog.csdn.net/qq_43842093/article/details/122787138
内容来源于网络,如有侵权,请联系作者删除!