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

求助:Log4j无法将日志写入指定文件

解决Log4j2日志写入文件无效的问题

核心问题分析

  • 你代码中使用的是Log4j2的API(org.apache.logging.log4j.LogManager),但配置文件是Log4j 1.x的格式,两者完全不兼容。
  • VM参数存在格式错误:两个系统属性之间缺少空格,且配置文件名不符合Log4j2的默认命名规则。

具体修复步骤

  1. 调整配置文件名
    将log4j.properties重命名为log4j2.properties,放在src/main/resources下即可。若手动指定路径,需保证参数间有空格,且Windows路径用正斜杠/或双反斜杠\\:

    -Dlog4j2.debug=true -Dlog4j2.configurationFile=C:/Users/xxx/resources/log4j2.properties
    
  2. 替换为Log4j2格式的配置内容
    以下是适配你需求的Log4j2 properties配置:

    # 根日志级别
    rootLogger.level = info
    rootLogger.appenderRef.file.ref = FileAppender
    
    # 定义滚动文件追加器
    appender.file.type = RollingFile
    appender.file.name = FileAppender
    appender.file.fileName = C:/logs/mylog.log
    appender.file.filePattern = C:/logs/mylog-%d{yyyy-MM-dd}.log
    appender.file.immediateFlush = true
    appender.file.append = true
    
    # 滚动触发策略:按大小+时间滚动
    appender.file.policies.type = Policies
    appender.file.policies.size.type = SizeBasedTriggeringPolicy
    appender.file.policies.size.size = 10MB
    appender.file.policies.time.type = TimeBasedTriggeringPolicy
    appender.file.policies.time.interval = 1
    appender.file.policies.time.modulate = true
    
    # 备份文件保留数量
    appender.file.strategy.type = DefaultRolloverStrategy
    appender.file.strategy.max = 20
    
    # 日志输出格式
    appender.file.layout.type = PatternLayout
    appender.file.layout.pattern = %d{ABSOLUTE} %5p %t %c{2}:%L - %m%n
    
  3. 简化VM参数(可选)
    若配置文件已放在src/main/resources下,可省略log4j2.configurationFile参数,Log4j2会自动扫描加载该目录下的log4j2.properties。

验证方式

启动程序后查看C:\logs目录是否生成日志文件,开启log4j2.debug=true可在控制台看到配置加载的详细日志,快速排查文件找不到、格式错误等问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.27 10:15:24