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

使用Log4J未生成日志文件?附项目配置代码求排查

排查Log4J未生成日志文件的问题

我来帮你梳理下问题所在,核心原因是Log4j 2的API和Log4j 1.x的配置文件不兼容,具体拆解如下:

1. 配置文件命名与格式不匹配

你代码里用的是Log4j 2的原生API(org.apache.logging.log4j.LogManager),但你的配置文件是log4j.properties——这是Log4j 1.x的配置文件命名规则和语法,Log4j 2默认不会识别并加载这个文件。

Log4j 2要求配置文件命名为log4j2.properties(也支持log4j2.xml/log4j2.yaml),并且配置语法和1.x完全不同,这是导致日志文件不生成的直接原因。

2. 修正配置文件

把你的log4j.properties重命名为log4j2.properties,然后替换成Log4j 2的语法,对应你原来的需求(控制台输出WARN及以上日志、按天滚动生成INFO及以上日志文件),配置如下:

status = warn
name = PropertiesConfig

# 根日志级别与关联Appender
rootLogger.level = INFO
rootLogger.appenderRefs = stdout, file
rootLogger.appenderRef.stdout.ref = STDOUT
rootLogger.appenderRef.file.ref = FILE

# 控制台输出Appender配置
appender.stdout.type = Console
appender.stdout.name = STDOUT
appender.stdout.layout.type = PatternLayout
appender.stdout.layout.pattern = %d{ISO8601} %5p [%t] %c{1}:%L - %m%n
# 控制台只输出WARN及以上日志
appender.stdout.filter.threshold.type = ThresholdFilter
appender.stdout.filter.threshold.level = WARN

# 按天滚动的文件Appender配置
appender.file.type = RollingFile
appender.file.name = FILE
appender.file.fileName = some_log_message.log
# 滚动文件的命名格式
appender.file.filePattern = some_log_message.log.%d{yyyy-MM-dd}
appender.file.layout.type = PatternLayout
appender.file.layout.pattern = %d{ISO8601} %5p [%t] %c{1}:%L - %m%n
# 文件记录INFO及以上日志
appender.file.filter.threshold.type = ThresholdFilter
appender.file.filter.threshold.level = INFO
# 按天滚动的触发策略
appender.file.policies.type = Policies
appender.file.policies.time.type = TimeBasedTriggeringPolicy
appender.file.policies.time.interval = 1
appender.file.policies.time.modulate = true

注意:Log4j 2已经废弃了1.x中的DailyRollingFileAppender,改用RollingFileAppender配合TimeBasedTriggeringPolicy实现按天滚动的功能。

3. 依赖与配置位置检查

  • 你的pom.xml依赖是正确的:log4j-api和log4j-core是Log4j 2的核心依赖,log4j-1.2-api是用来兼容Log4j 1.x API的适配层,你代码里直接用的是Log4j 2的API,这个依赖可以保留或移除,不影响当前功能。
  • 配置文件放在src/main/resources目录下是正确的,Log4j 2会自动扫描这个位置的配置文件。

修改完成后,重新运行SystemFiler的main方法,应该就能在项目根目录下生成some_log_message.log文件,里面会包含你循环打印的10条INFO级日志。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 07:29:11