【问题标题】:Single Log4j between Tomcat6 webappsTomcat6 webapps 之间的单个 Log4j
【发布时间】:2009-10-02 04:52:57
【问题描述】:

是否有正确的方法将 Log4j 记录器与 Common ClassLoader 一起使用,而不是与基于 Web-App 的 ClassLoader 一起使用,即对所有已部署的 web-apps 仅使用一个 log4j.jar? 当我将 log4j.jar 放到 commons lib 目录中时,log4j 会为任何应用程序获取第一个 loj4j.properties 并仅使用它。所有其他 loj4j.properties(其他应用程序的)都将被忽略。有没有办法说 log4j 为每个应用程序及其属性返回单独的日志工厂?

【问题讨论】:

    标签: log4j tomcat6


    【解决方案1】:

    不是我想你的意思,因为每个 web 应用程序的记录器应该完全独立于其他 web 应用程序中的记录器。因为日志存储库是单例的,所以只有在它们由单独的类加载器(即 webapp 类加载器)处理时才能做到这一点。

    还请注意,一般情况下(尽管您可能并非如此),不同的 webapps 具有不同的生命周期,这意味着 Tomcat 可能必须同时使用一个版本的 log4j 来支持 webapp A 和 webapp B,这使用不同版本的 log4j。

    【讨论】:

    • 是的,我完全同意,除了一件事。我在一个 tomcat 实例上托管了大约 60 个 webapp,当每个 webapp 加载单独的 log4j 实例时 - 我遇到了 PermGen 空间的问题。服务器只有 512Mb 内存 :(
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-06
    • 1970-01-01
    • 1970-01-01
    • 2022-01-26
    • 2013-03-02
    • 2019-08-11
    相关资源
    最近更新 更多