Docker tomcat容器将tomcat应用程序的启动日志保存在catalina.out文件中(最后一行是INFO: Server startup in 136607 ms)。但tomcat应用程序的其余活动都登录到控制台,并可以通过docker logs container_id查看。
有没有办法同时登录到文件和控制台?我需要tomcat容器中catalina.out.2021.log中的活动日志,这样我就可以运行一个脚本来收集、分析日志并处理它,发送电子邮件,它需要在容器中运行。
Tomcat是通过自定义日志属性文件/usr/local/tomcat/conf/logging.properties启动的,但输出在控制台上结束,而不是在文件中。
发布于 2021-02-19 01:35:38
在您使用的镜像(hobsonspipe/centos-tomcat7:latest)中,启动服务器时使用的是:
-Djava.util.logging.config.file=/etc/tomcat/logging.properties因此,您需要修改/etc/tomcat/logging.properties文件,而不是问题中使用的文件。这个文件已经完成了您想要做的事情:它将所有Tomcat日志发送到标准输出和/var/log/catalina.<date>.log,但来自应用程序(如果它们使用SevletContext#log方法)的日志消息发送到/var/log/localhost.<date>.log。
如果您的应用程序既不使用ServletContext#log也不使用java.util.logging,则必须在其他地方配置特定的日志记录框架。
https://stackoverflow.com/questions/66254000
复制相似问题