首页 > 解决方案 > 使用 Slf4j 和 Log4j2 进行 Spring Boot 日志记录。删除 spring-boot-starter-logging 的原因

问题描述

我需要在我的应用程序中使用 slf4j 和 log4j2。但在所有博客和教程中,它都说——“我们需要排除对 spring-boot-starter-logging 的依赖,并添加对 spring-boot-starter-log4j2 的依赖。”

我了解内部 spring-boot-starter-logging 使用 log4j/logback/spring-jcl 等,但不使用 log4j2。但我的疑问是为什么我们需要排除 'spring-boot-starter-logging' ,我们不能只添加 'spring-boot-starter-log4j2' 并开始使用 log4j2。? 为什么要排除 'spring-boot-starter-logging' ?

标签: javaspringspring-bootspring-mvcspring-boot-actuator

解决方案


spring-boot-starter-logging 对 logback 的依赖会导致它被包含在内。如果您还添加了 spring-boot-sarter-log4j2,那么您最终会出现 2 个 SLF4J 实现,并会收到警告。SLF4J 将选择它在类路径中首先找到的那个。

如果你删除 spring-boot-starter-logging 你也可以直接包含你想要的 log4j 依赖项。这样你就可以指定你想要的任何版本,而不是 Spring 说你必须使用的版本。


推荐阅读