如何为每个应用程序配置 tomcat 6 的 logs/catalina.out.(为 sys.out、sys.err 配置特定于 Web 应用的日志文件) [英] How to configure logs/catalina.out of tomcat 6 for per-app. (Configure web-app specific log file for sys.out, sys.err)
问题描述
要求是这个...
我们在 RHEL-5 服务器中部署了 3 个 Web 应用程序,我们使用 tomcat 6.0.16 部署了应用程序.我们想配置 stdout、stderr,它们在应用程序特定的日志文件中的 tomcat/logs/catalina.out 中,例如,
We have our 3 web-applications deployed in RHEL-5 server, we deployed apps with tomcat 6.0.16. We want to configure stdout, stderr, which are coming in tomcat/logs/catalina.out in app specific log file like,
tomcat/logs/app1.logtomcat/logs/app2.logtomcat/logs/app3.log
tomcat/logs/app1.log tomcat/logs/app2.log tomcat/logs/app3.log
我们正在使用 log4j,但它只生成日志详细信息,我们需要每个应用程序的标准输出,这些信息来自 tomcat/logs/catalina.out
we are using log4j, but it is only generating logging details we need stdout per-app which is coming in tomcat/logs/catalina.out
感谢任何帮助......
Any Help Appreciated ...
推荐答案
试试这个,
- 每个应用程序都必须使用自己的 log4j.您可以通过将 log4j.jar 放在每个应用程序的 WEB-INF/lib 中来实现这一点.
- 在每个 log4j 的配置文件中(默认位置是 WEB-INF/classes),指定日志文件名,例如
log4j.appender.AppLog.File=${catalina.home}/logs/app1.log
. - 为每个上下文添加
swallowOutput="true"
以便 stdout、stderr 将转到您自己的日志.
- Each application must use its own log4j. You can achieve this by placing log4j.jar in WEB-INF/lib of each application.
- In each log4j's configuration file (default location is WEB-INF/classes), specify the log file name, e.g.
log4j.appender.AppLog.File=${catalina.home}/logs/app1.log
. - Add
swallowOutput="true"
for each context so stdout, stderr will go to your own log.
我们在 Tomcat 5.5 上这样做,但我认为它也应该在 6.0 上工作.
We do this on Tomcat 5.5 but I think it should work on 6.0 also.
这是我们的 META-INF/context.xml,
Here is our 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>
这篇关于如何为每个应用程序配置 tomcat 6 的 logs/catalina.out.(为 sys.out、sys.err 配置特定于 Web 应用的日志文件)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!