如何为每个应用程序配置tomcat 6的logs / catalina.out。 (为sys.out,sys.err配置特定于Web应用程序的日志文件)

时间:2009-08-26 06:25:47

标签: tomcat logging log4j stdout

要求就是这个......

我们在RHEL-5服务器中部署了3个Web应用程序,我们使用tomcat 6.0.16部署了应用程序。 我们想配置stdout,stderr,它们在应用程序特定的日志文件中进入tomcat / logs / catalina.out,例如,

的Tomcat /日志/ app1.log 的Tomcat /日志/ app2.log 的Tomcat /日志/ app3.log

我们正在使用log4j,但它只生成我们需要stdout per-app的日志记录详细信息,这些内容将来自tomcat / logs / catalina.out

赞赏任何帮助......

1 个答案:

答案 0 :(得分:30)

试试这个,

  1. 每个应用程序必须使用自己的log4j。您可以通过将log4j.jar放在每个应用程序的WEB-INF / lib中来实现此目的。
  2. 在每个log4j的配置文件中(默认位置为WEB-INF / classes),指定日志文件名,例如: log4j.appender.AppLog.File=${catalina.home}/logs/app1.log
  3. 为每个上下文添加swallowOutput="true",以便stdout,stderr将转到您自己的日志。
  4. 我们在Tomcat 5.5上执行此操作,但我认为它也适用于6.0。

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

    <?xml version="1.0" encoding="UTF-8"?>
    <Context override="true" swallowOutput="true" useNaming="false">
      <WatchedResource>WEB-INF/web.xml</WatchedResource>
      <Manager pathname=""/>
    </Context>