日志框架介绍(SLF4J及其使用)

本文主要介绍

1.日志框架基本介绍及Spring Boot中默认使用框架(SLF4J+LogBack);

2.SLF4J的使用

3. 项目中日志框架统一问题

4.Spring Boot中如何实现日志框架统一问题(3的最佳实践)

1. 日志框架基本介绍

一般情况下搭建日志框架时,搭建 日志抽象层(定义接口) + 日志实现层组合 ,项目代码中应该使用抽象层,不应该使用日志实现类;

常见的日志框架包含:

日志抽象层JCL(2014年不再维护), SLF4Jjboss-logging

日志实现层jul(java.util.logging,jdk工具包下提供的),log4j, LogBack(log4j存在性能问题,logback是基于SLF4J抽象层编写的实现层), log4j2 (Apache下的,功能强大,但与其他的框架整合并不广泛)

(注:SLF4J,log4j,logback为同一个作者)

Spring框架选择了JCL作为默认日志输出;Spring Boot选择的是 SLF4J + LogBack作为默认日志;

2.SLF4J框架的使用

SLF4J日志框架基本使用 (抽象层 + 实现层)

1,引入SLF4J的Jar

2,引入实现层(log4j, jul等)对应的jar  

3,引入对应实现层的slf4j适配器jar (适配器jar由SLF4J提供的,编写了SLF4J接口类的实现,不同适配器实现接口时,调用的是对应的实现层框架的方法;实现层为Logback时,不需要适配器jar,因为logback就是基于SLF4J抽象层编写);

3. 项目中日志框架统一问题

当项目中引入多个第三方jar,而每个jar底层使用的日志选型不一样,造成项目中日志框架混乱【Spring(commons logging)、Hibernate(jboss-logging)】

SLF4J提供的解决方案:引用第三方jar时,exclude对应的底层日志A.jar,引入由SLF4J提供的日志转换器 B.jar(当前适配器B.jar 定义了A.jar中一摸一样的类和方法,方法中通过调用SLF4J的API实现)

 

具体步骤:

1. 排除系统中其他的日志框架

2. 使用SLF4J提供的转换器包替换要替换的日志框架

3. 引入要使用的SLF4J实现JAR

4.Spring Boot中如何实现日志框架统一问题(B的最佳实践)

Spring Boot 中使用的默认的日志框架为 SLF4J + LogBack

1. 在spring-boot-dependencies中exclusion其他日志框架(3中1步骤)

 2. Spring Boot中spring-boot-starters 依赖了 spring-boot-starter-logging,而在spring-boot-starter-logging中 定一个了log4j及jul对应的转换包jar 及 logback对应的jar (3中的2 ,3 )

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值