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

Log4j2无法向控制台及文件输出日志(properties配置)

Log4j2控制台与文件日志均不输出的解决方法

核心问题排查与修复

1. 配置文件语法错误

你的log4j2.properties中,rootLogger的appender引用格式有误,正确语法需使用rootLogger.appenderRef而非rootLogger.appenderRefs定义每个附加器的引用。

修改后的完整配置文件:

appenders = myfileappender,console
appender.myfileappender.type = File
appender.myfileappender.name = myfileappender
appender.myfileappender.fileName = logs/app.log
# 自动创建不存在的日志目录
appender.myfileappender.createParents = true
appender.myfileappender.layout.type = PatternLayout
appender.myfileappender.layout.pattern = %C{1.} {%-5level} %d{HH:mm:ss} - %msg%n
appender.console.type = Console
appender.console.name = console
appender.console.layout.type = PatternLayout
appender.console.layout.pattern = %C{1.} {%-5level} %d{HH:mm:ss} - %msg%n
rootLogger.level = ALL
rootLogger.appenderRefs = file,console
rootLogger.appenderRef.file.ref = myfileappender
rootLogger.appenderRef.console.ref = console

2. 依赖完整性检查

确保项目引入了Log4j2的核心依赖(以Maven为例):

<dependencies>
    <dependency>
        <groupId>org.apache.logging.log4j</groupId>
        <artifactId>log4j-api</artifactId>
        <version>2.20.0</version>
    </dependency>
    <dependency>
        <groupId>org.apache.logging.log4j</groupId>
        <artifactId>log4j-core</artifactId>
        <version>2.20.0</version>
    </dependency>
</dependencies>

如果项目用SLF4J作为日志门面,需额外添加桥接依赖:

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

3. 运行环境验证

  • 确认log4j2.properties放在src/main/resources目录下,构建工具会自动将其打包到classpath。
  • 运行项目时确保工作目录为项目根目录,这样logs/app.log会生成在项目根目录;若工作目录不符,可改用绝对路径指定日志文件位置。

验证方法

修改配置并更新依赖后重新运行主类,控制台应输出对应日志,同时项目根目录下的logs/app.log会被创建并写入日志内容。

内容的提问来源于stack exchange,提问作者Богдан Иманкулов

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 06:24:22