【发布时间】:2012-12-18 22:47:56
【问题描述】:
我正在使用用于记录 system.out.println 语句的第三方库(无法修改)。输出在控制台中显示正常,但我无法在 catalina[...].log 文件中检索这些信息?
是否可以将这些发送到 log4j?
【问题讨论】:
-
你到底为什么要标记
log4j?这个问题与 Log4j 到底有什么关系? -
我希望能够将这些发送到 log4j
我正在使用用于记录 system.out.println 语句的第三方库(无法修改)。输出在控制台中显示正常,但我无法在 catalina[...].log 文件中检索这些信息?
是否可以将这些发送到 log4j?
【问题讨论】:
log4j?这个问题与 Log4j 到底有什么关系?
在 unix 上运行 Tomcat 时,控制台输出通常重定向到名为 catalina.out 的文件。该名称可使用环境变量进行配置。 (参见启动脚本)。
http://tomcat.apache.org/tomcat-7.0-doc/logging.html#Console
【讨论】:
System.out.println() 打印到标准输出。因此,如果您想在日志文件中查看这些语句,只需将 stdout 重定向到 Tomcat 启动脚本中所需的位置即可。
【讨论】:
tomcat 就是这样标记的。
您也可以在 cat /var/log/messages 中找到这些日志
如果你尝试
cat /var/log/messages | grep server
【讨论】:
如果你运行的是 JSP 那么你需要添加
<%@ page isThreadSafe="false" %>
然后您的所有 System.out.println 将开始显示在 catalina.out 文件中。
如果您使用 Catalina.sh 从命令行运行启动 tomcat,您将在输出中看到打印结果。
【讨论】:
您可以在TOMCAT_HOME/logs/stdout_20130104.txt 中找到它(文件名可能会改变,但日志文件通常在文件夹TOMCAT_HOME/logs/ 中。
对我来说,我的代码中的所有系统输出都写在这样的文件中。
【讨论】:
在我的例子中(Fedora 29 apache-tomcat-8.5.39),它位于 logs 文件夹内的 catalina.out 文件中。
【讨论】: