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

Tomcat 9中如何捕获System.out.println输出并写入日志文件?

核心结论

默认配置下,System.out.println 输出的内容不会写入带日期后缀的catalina.[YYYY-MM-DD].log文件,默认会被重定向到同目录下的catalina.out无后缀纯文本文件,你可以先检查该文件是否存在对应输出。

配置修改方案
  • 如果你需要将System.out输出也写入带日期的catalina日志文件,修改Tomcat安装目录下的conf/logging.properties文件:
    1. 确保java.util.logging.ConsoleHandler.level配置值不低于INFO(System.out默认对应INFO级别)
    2. 确认.handlers配置项同时包含1catalina.org.apache.juli.FileHandler和java.util.logging.ConsoleHandler
    3. 新增如下两项配置:
    org.apache.catalina.startup.Catalina.handlers = 1catalina.org.apache.juli.FileHandler
    1catalina.org.apache.juli.FileHandler.redirectStdout = true
    
    修改后重启Tomcat生效。
  • 若你的Tomcat通过systemd服务管理,大部分发行版默认会将Tomcat的标准输出重定向到journald日志体系,你可以直接执行journalctl -u tomcat9.service查看对应输出;如果需要持久化到本地文件,修改systemd的Tomcat服务配置文件,新增StandardOutput=append:/var/log/tomcat/catalina.out配置后重载服务即可。
  • 若要在应用层面统一捕获所有System.out输出,可以在项目启动类的初始化逻辑中添加输出流重定向代码,将System.out转发到项目使用的java.util.logging.Logger体系,即可让所有打印内容统一走现有日志规则输出到对应文件。
补充排查提示

如果完成配置后仍找不到对应输出,优先确认第三方API的日志开关已按照要求正确开启,部分第三方组件的打印逻辑会在开关未激活时直接跳过,不会执行System.out.println调用。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 21:15:00