Tomcat 5.5:如何将日志logging输出redirect到每个Web应用程序的一个文件

如何configurationtomcat 5.5(或6.0),每个Web应用程序/上下文的stdout和stderr的输出将转到一个日志文件?

我只设法得到stderr到一个特定的日志文件 – 应用程序的标准输出仍然去catalina.out。

我发现以下信息,猜猜这应该对你有帮助。

尝试这个,

  1. 每个应用程序必须使用自己的log4j。 您可以通过将log4j.jar放在每个应用程序的WEB-INF / lib中来实现。
  2. 在每个log4j的configuration文件(默认位置是WEB-INF / classes)中,指定日志文件名,例如log4j.appender.AppLog.File = $ {catalina.home} /logs/app1.log。
  3. 为每个上下文添加swallowOutput =“true”,以便stdout,stderr将转到您自己的日志。

我们在Tomcat 5.5上这样做,但我认为它也应该在6.0上工作。

编辑:这是我们的META-INF / context.xml,

WEB-INF / web.xml文件

http://tomcat.apache.org/tomcat-6.0-doc/logging.html

http://tomcat.apache.org/tomcat-5.5-doc/logging.html

stdout指向catalina.sh脚本中的catalina.sh ,这适用于整个Tomcat服务器。

 "$CATALINA_BASE"/logs/catalina.out 2>&1 & 

我知道这不是一个完整的答案 – 只是告诉你在哪里看。

另一种分离输出的方法是为每个webapp运行一个tomcat实例。 这样,您不仅可以分离Web应用程序日志,还可以分离其他日志文件,JVM参数,实例的启动和停止等。

你会在这里find一个一步一步的指导。