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

MRa*_*ser 5 linux tomcat logging tomcat5.5

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

我只是设法将 stderr 获取到特定的日志文件 - 应用程序的 stdout 仍然转到 catalina.out。

Mit*_*aik 5

我找到了以下信息,猜想这应该对您有所帮助。

尝试这个,

  1. 每个应用程序都必须使用自己的 log4j。您可以通过将做到这一点log4j.jarWEB-INF/lib每个应用程序的。
  2. 在每个 log4j 的配置文件中(默认位置是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

<?xml version="1.0" encoding="UTF-8"?>
<Context override="true" swallowOutput="true" useNaming="false">
    <WatchedResource>WEB-INF/web.xml</WatchedResource>
    <Manager pathname=""/>
</Context>
Run Code Online (Sandbox Code Playgroud)

进一步阅读:


小智 0

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

"$CATALINA_BASE"/logs/catalina.out 2>&1 &
Run Code Online (Sandbox Code Playgroud)

我知道这不是一个完整的答案 - 只是告诉你去哪里寻找。