Log4j2.xml不生效:WARN StatusLogger Multiple logging implementations found:

背景

将 -Dlog4j.debug 添加到IDEA的类的启动配置中

运行上图代码,这里log4j2.xml控制的日志级别是info,很明显是没生效。

复制代码
DEBUG StatusLogger org.slf4j.helpers.Log4jLoggerFactory is not on classpath. Good!
DEBUG StatusLogger Using ShutdownCallbackRegistry class org.apache.logging.log4j.core.util.DefaultShutdownCallbackRegistry
WARN StatusLogger Multiple logging implementations found: 
Factory: org.apache.logging.log4j.core.impl.Log4jContextFactory, Weighting: 10
Factory: org.apache.logging.slf4j.SLF4JLoggerContextFactory, Weighting: 15
Using factory: org.apache.logging.slf4j.SLF4JLoggerContextFactory

分析

警告信息显示检测到多个日志实现,权重分别为10和15。

最终选择了权重较高的org.apache.logging.slf4j.SLF4JLoggerContextFactory 作为日志的实现工厂。

现在需要让应用程序使用 Log4jContextFactory 而不是 SLF4JLoggerContextFactory 作为日志的实现工厂。因此需要检查依赖关系,移除冲突的依赖项(这里需要处理的依赖项是log4j-to-slf4j)。

处理

这里需要处理的是spring-boot-starter-web依赖中的log4j-to-slf4j。

复制代码
<exclusions>
    <exclusion>
        <artifactId>log4j-to-slf4j</artifactId>
        <groupId>org.apache.logging.log4j</groupId>
    </exclusion>
</exclusions>

验证


运行代码没问题,配置的日志文件也有内容了。

相关推荐
云烟成雨TD23 分钟前
Spring AI Alibaba 1.x 系列【22】Agent 并行工具执行与超时 / 协作式取消实战
java·人工智能·spring
段小二42 分钟前
服务一重启全丢了——Spring AI Alibaba Agent 三层持久化完整方案
java·后端
段小二1 小时前
Agent 自动把机票改错了,推理完全正确——这才是真正的风险
java·后端
itjinyin1 小时前
ShardingSphere-jdbc 5.5.0 + spring boot 基础配置 - 实战篇
java·spring boot·后端
丶小鱼丶1 小时前
Java虚拟机【JVM】
java·jvm
csdn2015_1 小时前
IDEA配置Continue
java·ide·intellij-idea
aq55356002 小时前
C语言、C++和C#:三大编程语言核心差异详解
java·开发语言·jvm
老马95272 小时前
opencode4-在已有项目中增加修改功能
java·后端·ai编程
Moe4882 小时前
Spring AI:结构化输出
java·后端·面试
sthnyph3 小时前
TypeScript 与后端开发Node.js
java