【问题标题】:How to configure logs/catalina.out of tomcat 6 for per-app. (Configure web-app specific log file for sys.out, sys.err)如何为每个应用程序配置tomcat 6的logs/catalina.out。 (为 sys.out、sys.err 配置 Web 应用特定的日志文件)
【发布时间】:2023-03-10 19:32:02
【问题描述】:

要求是这样的……

我们在 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

感谢任何帮助...

【问题讨论】:

    标签: tomcat logging log4j stdout


    【解决方案1】:

    试试这个,

    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 进入您自己的日志。

    我们在 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>
    

    【讨论】:

    • 谢谢朋友...我想知道我必须把swallowOutput="true"放在哪里,是/tomcat/conf/Catalina/www.app.com/context.xml,在哪个标签我必须放燕子输出=“真”?
    • 我编辑了答案并添加了我们的 context.xml。这个比你提到的那个更好,因为它不依赖于容器配置。
    • 如果我把给定的 context.xml 比数据库连接不工作......可能是什么问题?我们没有从 context.xml 获取数据库连接 ...
    • 如果使用 JNDI 资源定义数据源,则需要启用命名。删除 useNaming="false"。
    • 这篇文章对我有帮助,我的头痛现在已经消失了......我在 2013 年 4 月和 2009 年的这个帖子上写了这篇评论......那么,有任何更新吗?或任何新的方法来做同样的事情? Garudadwajan 提到了我的要求......我已经投票支持 ZZ Coder 评论中提到的问题、答案和答案
    猜你喜欢
    • 1970-01-01
    • 2013-01-12
    • 2023-03-12
    • 1970-01-01
    • 2012-05-09
    • 1970-01-01
    • 2017-05-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多