我的系统由3个不同的Linux帐户运行的tomcats组成。每个tomcat至少有一个Web应用程序。在tomcat / lib和源文件夹中可以找到多个log4j.properties。当看到catalina.out中的打印件时,我发现来自appender的打印件甚至来自另一个tomcat实例,这就是我的问题。 我知道我的问题听起来有点模糊,但我也不希望得到具体的答案。 你能指导我一篇很好的文章,解释log4j如何在如此复杂的系统中流动吗?或者也许是调试这种情况的有效方法?
答案 0 :(得分:0)
catalina.out
用于存储Tomcat实例的stdout和stderr输出。根据您所说的,似乎每个Tomcat实例都写入相同的catalina.out
(类似/var/log/tomcat7/catalina.out
)。
您最好为每个应用程序设置log4j以写入其他日志文件。您可以使用FileAppender
执行此操作。有关示例,请参阅this post。
答案 1 :(得分:0)
取决于您的配置。如果你复制了tomcats文件夹并且有' 3'独立安装,你应该有独立的日志。在/conf/logging.properties中配置。 很可能你为整个系统设置了一次CATALINA_HOME,所以你的3个tomcats共享这些路径,所有这些都将写入CATALINA_HOME / logs下的相同日志。 如果缺少CATALINA_HOME,那么启动脚本将对主目录执行自动发现,并且每个启动将使用不同的/ log目录启动。或者mayke,因为你的启动脚本设置了唯一的值。