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>

验证


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

相关推荐
bing_15823 分钟前
Spring Data MongoDB 提供了哪些核心组件?
java·mongodb·spring
知秋丶29 分钟前
Spring-rabbit重试消费源码分析
java·后端·spring
hello早上好32 分钟前
Spring Bean后处理器
java·架构
沉豆40 分钟前
Jmeter调用jar包中的方法,并使用返回值当请求参数
java·jmeter·jar
天天摸鱼的java工程师1 小时前
synchronized 与 ReentrantLock 区别?公平锁、非公平锁、可重入锁、自旋锁的原理与应用?
java·后端
一只白鸭子1 小时前
从实践到思考:Spring Boot + MyBatis关系查询小分享
java
天天摸鱼的java工程师1 小时前
详解 Spring Boot 的 RedisAutoConfiguration 配置:从自动装配到自定义扩展
java·后端
Dcs1 小时前
Java 新手指南:类和对象到底是啥?
java
用户正在当牛马1 小时前
Mysql的数据如何与redis进行同步(双写一致性)
java
程序员阿超的博客1 小时前
Java大模型开发入门 (7/15):让AI拥有记忆 - 使用LangChain4j实现多轮对话
java·人工智能·microsoft