如何将Tomcat日志重定向到控制台

112次阅读
没有评论

问题描述

在Linux系统(具体是Alpine)上使用Tomcat时,希望将Tomcat日志从默认的文件输出(/usr/local/tomcat/logs)改为输出到控制台。用户需要将日志输出到控制台,因为系统会将控制台输出捕获并传输给一个分析程序,用户无法更改该程序或捕获过程以同时使用文件和控制台。

解决方案

请注意以下操作注意版本差异及修改前做好备份。

方案1

Tomcat有一个用于日志记录的配置文件:TOMCAT_HOME/conf/logging.properties。编辑该文件,删除除了控制台处理程序之外的所有处理程序:

.handlers = java.util.logging.ConsoleHandler

这将将所有日志记录输出到控制台,但不包括访问日志(localhost_access_log.XXXX.txt)。访问日志始终由AccessLogValve在server.xml中配置的方式写入文件。如果要重定向访问日志,需要配置自己的AbstractAccessLogValve实现…这需要编码。

方案2

根据Tomcat的官方文档,当在Unix系统上运行Tomcat时,控制台输出通常会被重定向到名为catalina.out的文件中。可以使用环境变量来配置文件名(请参考启动脚本)。所有写入System.err/out的内容都会被捕获并写入该文件中,包括未捕获的异常和线程转储。在Windows上作为服务运行时,控制台输出也会被捕获和重定向,但文件名不同。Apache Tomcat的默认日志配置将相同的消息同时写入控制台和日志文件中。这在开发时非常有用,但在生产环境中通常不需要。
所以,如果您需要捕获与分析软件相同的日志,您需要读取catalina.out文件。
希望对您有所帮助。

正文完