You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何消除Log4j2中‘包扫描定位插件已废弃’的警告日志?

解决Log4j 2.x包扫描弃用警告问题

这个警告是因为Log4j 2.10+版本开始,默认通过包扫描定位插件的机制被标记为弃用,未来会移除。以下是两种有效解决方式:

方法一:添加Log4j Plugins依赖(推荐)

Log4j提供了log4j-plugins模块,包含了常用的核心插件(如FileAppender、PatternLayout等),添加该依赖后,Log4j会通过插件清单文件加载组件,无需依赖包扫描。

在你的pom.xml中添加以下依赖(版本与已有Log4j依赖保持一致,即2.20.0):

<dependency>
    <groupId>org.apache.logging.log4j</groupId>
    <artifactId>log4j-plugins</artifactId>
    <version>2.20.0</version>
</dependency>

添加后重新构建项目,启动时警告即可消失。

方法二:显式声明所需插件

如果不想新增依赖,可以在log4j2.xml配置文件中,显式声明你实际用到的所有插件类,避免Log4j触发包扫描。

示例配置(根据你实际使用的插件调整):

<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="WARN">
    <!-- 显式声明用到的插件 -->
    <Plugins>
        <Plugin type="Appender" name="File" class="org.apache.logging.log4j.core.appender.FileAppender"/>
        <Plugin type="Layout" name="PatternLayout" class="org.apache.logging.log4j.core.layout.PatternLayout"/>
        <Plugin type="Logger" name="Root" class="org.apache.logging.log4j.core.config.LoggerConfig"/>
    </Plugins>
    
    <Appenders>
        <File name="FileAppender" fileName="logs/app.log">
            <PatternLayout pattern="%d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>
        </File>
    </Appenders>
    
    <Loggers>
        <Root level="info">
            <AppenderRef ref="FileAppender"/>
        </Root>
    </Loggers>
</Configuration>

额外检查

运行mvn dependency:tree命令检查依赖树,确保所有Log4j相关依赖(如log4j-api、log4j-core)版本均为2.20.0,避免版本冲突导致的异常。

内容的提问来源于stack exchange,提问作者jvatechs

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.21 04:12:10