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.您也可以在 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写在哪里?的主要内容,如果未能解决你的问题,请参考以下文章
tomcat没有打印system.out.println()
idea tomcat控制台system.out.println是乱码