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

Gradle构建系统中Log4j2配置文件无法识别问题求助

解决Log4j2找不到配置文件的问题

嘿,Ahmed,这个问题我碰到过好几次了——核心原因是你用的是Log4j 2,但配置文件是Log4j 1.x的格式和命名,Log4j 2完全不识别这套东西,所以才会提示找不到配置文件,只能用默认配置。

具体问题点:

  • Log4j 2不识别log4j.properties这个文件名,它默认寻找的是log4j2.properties(也支持xml/yaml等格式)
  • 你的配置内容里的类都是Log4j 1.x的(比如org.apache.log4j.ConsoleAppender),这些在Log4j 2里已经被替换成了全新的API

一步一步解决:

1. 重命名配置文件

把src/main/resources/log4j.properties改名为log4j2.properties,这样Log4j2才能正确识别并加载它。

2. 替换配置内容为Log4j 2格式

把文件内容换成下面的代码,完全匹配你原来的需求(DEBUG级别、控制台输出、文件输出、自定义logger):

# 根日志配置
rootLogger.level = DEBUG
rootLogger.appenderRefs = stdout, kplogfile
rootLogger.appenderRef.stdout.ref = STDOUT
rootLogger.appenderRef.kplogfile.ref = KPLOGFILE

# 控制台输出Appender
appender.STDOUT.type = Console
appender.STDOUT.name = STDOUT
appender.STDOUT.layout.type = PatternLayout
appender.STDOUT.layout.pattern = [%d] %p %m (%c)%n

# 文件输出Appender
appender.KPLOGFILE.type = File
appender.KPLOGFILE.name = KPLOGFILE
appender.KPLOGFILE.fileName = /home/aalmehdi/temp/javatut/gradle-demo/kplog.out
appender.KPLOGFILE.layout.type = PatternLayout
appender.KPLOGFILE.layout.pattern = %m%n

# 自定义logger kplogger
logger.kplogger.name = kplogger
logger.kplogger.level = DEBUG
logger.kplogger.appenderRefs = kplogfile
logger.kplogger.appenderRef.kplogfile.ref = KPLOGFILE
logger.kplogger.additivity = false  # 避免日志重复输出到根logger的appender

3. 确保Gradle依赖是正确的Log4j 2包

检查你的build.gradle,确保依赖是Log4j2的核心和API包,不要混进Log4j1.x的依赖:

dependencies {
    // Log4j2核心包
    implementation 'org.apache.logging.log4j:log4j-core:2.20.0'
    // Log4j2 API包
    implementation 'org.apache.logging.log4j:log4j-api:2.20.0'
}

做完这些之后,重新运行gradle run,应该就能正常加载配置,不再出现那个错误提示了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 10:13:13