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

log4j2配置后仅控制台输出正常、日志文件为空如何解决?

问题原因
  • 自定义日志器的包路径不匹配:你配置的logger.file.name = guru.springframework.blog.log4j2properties是示例教程里的测试包名,只有该包下的类输出的日志才会被转发到文件输出源LOGFILE,如果你的业务代码不在这个包路径下,对应日志不会进入文件写入流程。
  • 根日志器未绑定文件输出源:全局生效的rootLogger仅配置了控制台输出源STDOUT,没有关联文件输出源,所有日志默认只会输出到控制台。
解决方法

方案一:所有日志同时输出到控制台和文件

修改根日志器配置,增加文件输出源的绑定即可:

# 原rootLogger配置替换为以下内容
rootLogger.level = debug
rootLogger.appenderRefs = stdout, file
rootLogger.appenderRef.stdout.ref = STDOUT
rootLogger.appenderRef.file.ref = LOGFILE

不需要单独为特定包做日志规则的情况下,可以直接删除以下冗余的自定义日志器配置:

loggers=file
logger.file.name=guru.springframework.blog.log4j2properties
logger.file.level = debug
logger.file.appenderRefs = file
logger.file.appenderRef.file.ref = LOGFILE

方案二:仅指定包的日志输出到文件

如果你只需要特定业务包的日志写入文件,将自定义日志器的包名替换为你的业务代码所在包即可,示例:

# 替换为你自己的业务包路径
logger.file.name=com.yourcompany.business
补充排查点

如果修改配置后问题仍存在,检查日志存放目录的权限:确认程序对配置的logs目录有读写权限,目录不存在的话需要先手动创建或配置log4j2自动创建目录。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.09 16:21:01