如何在Tomcat中记录标准输出?

2022-09-02 10:47:18

有没有办法将所有标准输出记录到Tomcat中的catalina.log文件中?(即打印到的所有内容System.out.println())

运行时打开的控制台窗口显示 stdout 的输出,但不会保存到 。TOMCAT/bin/startup.batTOMCAT/logs/catalina.<date>.log

我的具体问题是我在log4j中定义了一个控制台追加器来输出到控制台。这些日志消息在 Tomcat 控制台窗口中正确显示,但它们不会写入 catalina.log。我在Windows上运行Tomcat 5.5。谢谢。

编辑:

这是我的log4j.properties文件。它位于:TOMCAT/webapps/app/WEB-INF/classes/log4j.properties

log4j.rootCategory=DEBUG, console
log4j.appender.console=org.apache.log4j.ConsoleAppender
log4j.appender.console.layout=org.apache.log4j.PatternLayout
log4j.appender.console.layout.ConversionPattern=[%d{ABSOLUTE} %-5p %c{1}]: %m%n

答案 1

我以前遇到过类似的问题,并且还没有找到通过在Windows中记录System.out来做到这一点的方法,除非您将Tomcat作为Windows服务运行。这在Unix中似乎默认有效,因为指向哪些日志stdout到文件,如下所示startup.shcatalina.shcatalina.out

org.apache.catalina.startup.Bootstrap "$@" start >> "$CATALINA_BASE"/logs/catalina.out 2>&1 &

在 log4j 中,它本身不会附加到文件,只会附加到ConsoleAppenderSystem.out

但是,我已经修改了您的log4j属性以添加FileAppender,并且此配置可以正常工作,但是当然这会记录到单独的日志文件中。

新配置

# Set root logger level to DEBUG.
log4j.rootLogger=DEBUG, console, myFile

log4j.appender.console=org.apache.log4j.ConsoleAppender
log4j.appender.console.layout=org.apache.log4j.PatternLayout
log4j.appender.console.layout.ConversionPattern=[%d{ABSOLUTE} %-5p %c{1}]: %m%n




# myFile writes to file
log4j.appender.myFile=org.apache.log4j.RollingFileAppender
log4j.appender.myFile.File=logs/tomcatlog4j.log
log4j.appender.myFile.MaxFileSize=100KB
log4j.appender.myFile.layout=org.apache.log4j.PatternLayout
log4j.appender.myFile.layout.ConversionPattern==[%d{ABSOLUTE} %-5p %c{1}]: %m%n

输出

=[15:24:03,819 信息 A1]: 在我的.jsp =[15:24:03,975 信息 A1]: 走出我的.jsp =[15:24:04,880 信息 A1]: 在我的.jsp =[15:24:04,880 信息 A1]: 离开我的.jsp

另请参见

如何记录部署在 tomcat 中的特定包中的异常

将选择事件记录到单独的文件中

https://serverfault.com/questions/201178/tomcat-5-5-how-to-redirect-the-logging-output-to-one-file-per-web-application


答案 2

您是否检查过是否可以从您的应用程序中找到 log4j.properties 文件?也许你可以通过设置一个硬编码的文件路径来检查,比如

-Dlog4j.configuration=file:///C:\Dev\log4j.properties

如果日志是在这些更改之后写入的,则 log4j 文件的相对路径是错误的。


推荐