log4j 为什么spring-boot-starter-logging需要依赖于log 4-to-slf 4j

6l7fqoea  于 2022-11-06  发布在  Spring
关注(0)|答案(1)|浏览(128)

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

e4eetjau

e4eetjau1#

Sping Boot 绑定了所有主要的日志框架。通过一个配置,你可以集中通过SLF4J,Log4j 2.x API或java.util.logging发送的日志。
因此,spring-boot-starter-logging提供:

请注意,spring-boot-starter-log4j2做了同样的事情,并将上面的框架重定向到Log4j 2.x Core。
这张图中最大的缺陷是Jakarta Commons Logging,它只能绑定到java.util.logging(因此不能直接绑定到Logback或Log4j 2.x Core),但是spring-core依赖于spring-jclspring-jcl将JCL直接绑定到SLF4J或Log4j 2.x API,并且可以完全替换原来的JCL。
第五个API(Log4j 1.x)在Sping Boot 1.x中得到支持。

相关问题