Tomcat6 webapps之间的单个Log4j

Tomcat6 webapps之间的单个Log4j,log4j,tomcat6,Log4j,Tomcat6,是否有正确的方法将Log4j logger与通用类加载器一起使用,而不是与基于Web应用的类加载器一起使用,即对所有部署的Web应用只使用一个Log4j.jar? 当我在commons lib目录中放置log4j.jar时,log4j会为任何应用程序获取第一个loj4j.properties,并且只使用它。忽略(其他应用程序的)所有其他loj4j.properties。有没有办法说log4j可以为每个应用程序返回单独的日志工厂以及它们的属性?我想你的意思不是这样的,因为每个webapp的日志记录

是否有正确的方法将Log4j logger与通用类加载器一起使用,而不是与基于Web应用的类加载器一起使用,即对所有部署的Web应用只使用一个Log4j.jar?
当我在commons lib目录中放置log4j.jar时,log4j会为任何应用程序获取第一个loj4j.properties,并且只使用它。忽略(其他应用程序的)所有其他loj4j.properties。有没有办法说log4j可以为每个应用程序返回单独的日志工厂以及它们的属性?

我想你的意思不是这样的,因为每个webapp的日志记录器应该完全独立于其他webapp中的日志记录器。因为日志存储库是单例的,所以只有当它们由单独的类加载器(即webapp类加载器)处理时,才能执行此操作


还要注意的是,一般来说(虽然可能不是你的情况),不同的Web应用程序有不同的生命周期,这意味着Tomcat可能必须在支持Web应用程序A的同时使用一个版本的log4j,而Web应用程序B使用不同版本的log4j。

是的,我完全同意,除了一件事。我在一个tomcat实例上托管了大约60个webapp,当每个webapp加载单独的log4j实例时,我就遇到了PermGen空间的问题。服务器只有512Mb内存:(