SpringBoot-2.7.6基于SLF4J日志门面的日志框架切换

时间:2024-02-24 20:59:57

SpringBoot 没有强制性的日志记录依赖项,但 Commons Logging API 除外,它通常由 Spring Framework 的模块提供。 要使用 Logback,您需要将其包含在类路径中。 推荐的方法是您只需要通过启动器,这都取决于 . 对于 Web 应用程序 ,因为它可传递地依赖于日志记录启动器。 如果使用 Maven,则以下依赖项会为您添加日志记录:spring-jcl.spring-boot-starter-logging.spring-boot-starter-web。

SpringBoot将Commons Logging用于所有内部日志记录,但保留底层日志实现。为Java Util Logging、Log4J2和Logback提供了默认配置。在每种情况下,记录器都被预先配置为使用控制台输出,可选的文件输出也可用。

SpringBoot实现不同的日志框架切换,除了SpringBoot本身提供的场景启动器外,还可以通过SLF4J的适配器和桥接器来方便的实现转换。

1.Default Logging

SpringBoot 有一个抽象,它尝试根据类路径的内容配置日志记录。 如果 Logback 可用,则它是首选。

2.Log4j for Logging

SpringBoot支持Log4j2进行日志记录配置(如果它在类路径上)。如果使用启动器来组装依赖项,则必须排除Logback,然后包含log4j2。如果您不使用启动器,那么除了Log4j2之外,还需要(至少)提供spring-jcl。

  • 基于SpringBoot的场景启动器切换,示例如下:
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter</artifactId>
    <exclusions>
        <exclusion>
            <groupId>org.springframework.boot</groupId>
            <arti