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
相关产品推荐
相关产品推荐

