Tomcat 9日志输出重定向



我为Windows 11安装了Tomcat 9,我想知道如何在Unix (Catalina.out)中重定向system.out.println。我在很多论坛上读过(p.e swallowOutput="true"),但没有任何效果。

可以在<tomcat-install>/logs/catalina*.log中找到所有的stdout

控制<tomcat-install>/conf/logging.properties中的日志文件文件名

阅读更多关于日志管理的信息。

专:

控制台

在unix上运行Tomcat时,控制台输出通常为重定向到名为catalina。out的文件。名称是可配置的使用环境变量。(请参阅启动脚本)。任何写入系统。Err/out将被捕获到该文件中。这可能包括:

Uncaught exceptions printed by java.lang.ThreadGroup.uncaughtException(..)
Thread dumps, if you requested them via a system signal

在Windows上作为服务运行时,控制台输出也为被捕获并重定向,但文件名不同。

Apache Tomcat中的默认日志配置也会写入相同的内容消息发送到控制台和日志文件。这在使用时是很棒的Tomcat用于开发,但在生产中通常不需要。

仍然使用System的旧应用程序。out或System。错误可以是通过在上下文上设置swallowOutput属性来欺骗。如果属性设置为true,则调用System。请求期间出现Out/err处理过程将被拦截,它们的输出将被馈送到使用javax.servlet.ServletContext.log(…)调用。注意,swallowOutput特性实际上是一个技巧它有其局限性。它只适用于直接呼叫系统。Out/err,并且仅在请求处理周期期间。可能不会在应用程序可能创建的其他线程中工作。它不能用于拦截自己编写的日志记录框架到系统流,因为那些开始早,并可能获得一个直接重定向发生前对流的引用。

最新更新