SpringBoot的日志管理

本文深入探讨了日志框架的选择与应用,包括SLF4j、Logback、JCL等常见日志抽象层与实现,以及SpringBoot如何统一管理日志。介绍了如何在现有系统中切换至SLF4j,实现日志的标准化。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. 目前的日志框架有:

日志的抽象层日志的实现
JCL(Jakarta Commons Logging),jboss-logging,SLF4j(Simple Logging Facade for Java)JUL(java.util.logging),Log4j,Log4j2,Logback

用的是时候要选择一个日志抽象层和一个日志的实现, 推荐使用slf4j+logback
Spring框架默认使用JCL
SpringBoot选用SLF4j和Logback

2. SLF4j使用

2.1 如何使用SLF4j
开发的时候日志记录方法的调用不应该直接调用日志的实现类,而是调用日志抽象层里面的方法
用的时候要要入slf4j和logback的jar包

//导入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以后,配置要根据日志实现框架的写
2.2 如何该现有的系统的日志实现框架
现在各中技术框架底层的日志都不一样,比如Spring(commons-logging)、Hibernate(jboss-logging)…
那当使用其他技术框架时怎么样统一使用slf4j进行日志管理呢?
如以下slf4j官网图片所示:要使用slf4j的一些中转的jar,比如jcl-over-slf4j.jar会把底层框架中的jcl中的方法实现切换成slf4j去实现
在这里插入图片描述
统一系统中所有日志到slf4j需要做以下步骤:

  • 讲系统中其他日志框架先exclude(比如exclude jcl)
  • 用slf4j提供的中间转换jar替换原有的日志框架(比如导入jcl-over-slf4j.jar)
  • 导入slf4j其他的实现(比如我们用的logback)

3. SpringBoot日志

  • SpringBoot底层使用slf4j+logback的方式进行日志记录
  • SpringBoot会把其他日志都替换成slf4j
    在这里插入图片描述
    SpringBoot能自动适配所有的日志,而且底层使用的时slf4j+logback的方式记录日志。引入其他框架的时候,只需要把这个框架的日志依赖排除掉。
    SpringBoot会加载以下log的配置文件,但是推荐使用*-spring.xml的配置文件。因为不带-spring的logback.xml, 会被日志框架直接读取。而logback-spring.xml会被SpringBoot读取并解析,可以使用SpringBoot的高级Profile功能
Logging SystemCustomization
Logbacklogback-spring.xml, logback-spring.groovy, logback.xml, or logback.groovy
Log4j2log4j2-spring.xml or log4j2.xml
JDK (Java Util Logging)logging.properties

4. 切换日志

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值