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>

验证


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

相关推荐
曳渔19 分钟前
Java-数据结构-二叉树-习题(三)  ̄へ ̄
java·开发语言·数据结构·算法·链表
shark-chili30 分钟前
数据结构与算法-Trie树添加与搜索
java·数据结构·算法·leetcode
白乐天_n32 分钟前
FRIDA-JSAPI:Java使用
java·jsapi·frida
无奇不有 不置可否42 分钟前
JVM基础篇学习笔记
java·jvm
小电玩1 小时前
JAVA SE8
java·开发语言
努力的布布2 小时前
Spring源码-从源码层面讲解声明式事务的运行流程
java·spring
程序员大金2 小时前
基于SpringBoot的旅游管理系统
java·vue.js·spring boot·后端·mysql·spring·旅游
小丁爱养花2 小时前
记忆化搜索专题——算法简介&力扣实战应用
java·开发语言·算法·leetcode·深度优先
大汉堡~2 小时前
代理模式-动态代理
java·代理模式
爱上语文2 小时前
Springboot三层架构
java·开发语言·spring boot·spring·架构