SpringBoot日志框架

SpringBoot日志框架

项目中开发中日志是必不可少的记录事件的组件,常见的日志框架很多,例如:JCL、SLF4J,Jboss-logging,log4j,log4j2,logback等。

通常,日志是由一个抽象层+实现层的组合来搭建。

抽象层实现层
JCL(Jakarta Commons Loggin), SLF4J (simple loggin facade for java),jboss-loggingjul(java.util.logging),log4j,logback,log4j2

Spring框架默认使用的日志框架JCL,而SpringBoot默认使用SLF4J结合LogBack

日志框架使用了门面模式

门面模式的核心时外部与一个子系统的通信必须通过一个统一的外观对象进行,使得子系统更易于使用。

核心点:

  • 外观对象知道所有子角色的功能和职责
  • 将客户端发来的请求委派给子系统中,自己没有使劲按业务逻辑
  • 不参与子系统内业务逻辑实现

SLF4J使用

开发时不应直接使用日志的实现层,而应该使用日志的抽象层,这项可以更具需要替换具体的实现。

slf4j官方的使用例子:

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

public class HelloWorld {
  public static void main(String[] args) {
    Logger logger = LoggerFactory.getLogger(HelloWorld.class);
    logger.info("Hello World");
  }
}

下图是SLF4J结合各种框架的示例,SLF4J API永远作为日志框架的门面

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-o6rX3cvo-1625583862652)(SpringBoot日志框架.assets/concrete-bindings.png)]

注意:每个日志的实现框架都有自己的配置文件,在使用SLF4J后,还要使用实现日志框架的配置文件。

统一日志框架

SLF4J官方给的参考例子

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-HNkHGgT6-1625583862657)(SpringBoot日志框架.assets/legacy.png)]

从图中得到一种统一日志框架的方式,可以使用一种和要替换框架类完全一样的jar进行替换,这样不致于原来的第三方jar报错,而替换的jar其实使用SLF4J API这样项目中的日志替换就可以通过SLF4J API结合自己选择的框架进行日志输出。

统一日志框架步骤归纳:

  1. 排除系统中的其他日志框架
  2. 使用中间包替换要替换的日志框架
  3. 导入选择的SLF4J实现

例如:要用Logback 替换log4j

  1. 删除log4j的依赖
  2. 添加log4j-over-slf4j的桥接依赖
  3. 添加logback依赖
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

超人@不会飞

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值