windows下tomcat的system.out.println写在哪里?

Posted

技术标签:

【中文标题】windows下tomcat的system.out.println写在哪里?【英文标题】:Where does system.out.println in tomcat under windows gets written? 【发布时间】:2012-12-18 22:47:56 【问题描述】:

我正在使用用于记录 system.out.println 语句的第三方库(无法修改)。输出在控制台中显示正常,但我无法在 catalina[...].log 文件中检索这些信息?

是否可以将这些发送到 log4j?

【问题讨论】:

你到底为什么要标记log4j?这个问题与 Log4j 到底有什么关系? 我希望能够将这些发送到 log4j 【参考方案1】:

在 unix 上运行 Tomcat 时,控制台输出通常重定向到名为 catalina.out 的文件。该名称可使用环境变量进行配置。 (参见启动脚本)。

http://tomcat.apache.org/tomcat-7.0-doc/logging.html#Console

【讨论】:

【参考方案2】:

System.out.println() 打印到标准输出。因此,如果您想在日志文件中查看这些语句,只需将 stdout 重定向到 Tomcat 启动脚本中所需的位置即可。

【讨论】:

不用猜,tomcat 就是这样标记的。 您有说明如何进行该配置的链接吗? @Stainedart 你必须自定义你的启动脚本。 “Tomcat 启动脚本”和“启动脚本”含糊不清——你在说什么? 这里是如何重定向标准输出,编辑 conf/logging.properties 并将这一行 .handlers = 1catalina.org.apache.juli.FileHandler, java.util.logging.ConsoleHandler 更改为 .handlers = 1catalina .org.apache.juli.FileHandler 那么它只会记录到 catalina..log 或 tomcat8-stdout..log。 “由 serverfault.com 的 sourcedelica 回答”【参考方案3】:

您也可以在 cat /var/log/messages 中找到这些日志

如果你尝试

cat /var/log/messages | grep server

【讨论】:

【参考方案4】:

如果你运行的是 JSP 那么你需要添加

 <%@ page isThreadSafe="false"  %>

然后您的所有 System.out.println 将开始显示在 catalina.out 文件中。

如果您使用 Catalina.sh 从命令行运行启动 tomcat,您将在输出中看到打印结果。

【讨论】:

【参考方案5】:

您可以在TOMCAT_HOME/logs/stdout_20130104.txt 中找到它(文件名可能会改变,但日志文件通常在文件夹TOMCAT_HOME/logs/ 中。

对我来说,我的代码中的所有系统输出都写在这样的文件中。

【讨论】:

这些文件对我来说不存在。【参考方案6】:

在我的例子中(Fedora 29 apache-tomcat-8.5.39),它位于 logs 文件夹内的 catalina.out 文件中。

【讨论】:

以上是关于windows下tomcat的system.out.println写在哪里?的主要内容,如果未能解决你的问题,请参考以下文章

Tomcat8下建立WebSocket始终连不上

tomcat没有打印system.out.println()

linux 怎么把tomcat日志按日期分割

idea tomcat控制台system.out.println是乱码

在 windows 中更改 Tomcat 的 Charset.defaultCharset

TOMCAT的catalina.out日志没有内容输出