28

要求是这样...

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

tomcat/logs/app1.log tomcat/logs/app2.log tomcat/logs/app3.log

我们正在使用 log4j,但它只生成日志详细信息,我们需要每个应用程序的标准输出,它来自 tomcat/logs/catalina.out

任何帮助表示赞赏...

4

1 回答 1

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"标准输出,标准错误将进入您自己的日志。

我们在 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>
于 2009-08-27T02:14:16.117 回答