我有一个使用spring-boot-starter的SpringBoot2.6.3项目。当我在maven中运行dependecy:tree目标时,我看到spring-boot-starter-logging同时依赖于logback和(间接) log4j。为什么spring-boot-starter-logging需要依赖于log4-to-slf4j

发布于 2022-02-18 20:23:04
Spring为所有主要日志框架提供了绑定。使用单个配置,您可以集中通过SLF4J、Log4j 2.xAPI或java.util.logging发送的日志。
因此,spring-boot-starter-logging规定:
logback-classic)的绑定,log4j-to-slf4j)的实现。注意,这不是用于implementation.jul-to-slf4j).的标准Log4j 2.x核心Log4j处理程序。
请注意,spring-boot-starter-log4j2做了同样的事情,并将上面的框架重定向到Log4j 2.xCore。
图中最大的缺失是Jakarta,它只能绑定到java.util.logging (因此不能直接绑定到Logback或Log4j 2.xCore)。然而,spring-core依赖于spring-jcl,它直接将JCL绑定到SLF4J或Log4j 2.xAPI,并且可以完全取代原来的JCL。
SpringBoot1.x支持第五个API (Log4j 1.x)。
https://stackoverflow.com/questions/71176985
复制相似问题