Tomcat6 Web 应用程序之间的单个 Log4j
是否有一种正确的方法可以将 Log4j 记录器与 Common ClassLoader 一起使用,而不是与基于 Web 应用程序的 ClassLoader 一起使用,即对所有已部署的 Web 应用程序仅使用一个 log4j.jar ? 当我将 log4j.jar 放到 commons lib 目录中时,log4j 会为任何应用程序获取第一个 loj4j.properties 并仅使用它。 (其他应用程序的)所有其他 loj4j.properties 都将被忽略。有没有办法让 log4j 为每个应用程序及其属性返回单独的日志工厂?
Is there a correct way to use Log4j logger with Common ClassLoader, not with Web-App based ClassLoader, i.e. use only one log4j.jar for all deployed web-apps?
When i'm drop a log4j.jar in commons lib directory, log4j get a first loj4j.properties for any application and use only it. All other loj4j.properties (of other applications) are ignored. Is there way to say log4j to return separate log factory for every application with their properties?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
不是我认为你的意思,因为每个网络应用程序的记录器应该完全独立于其他网络应用程序中的记录器。因为日志存储库是单例的,所以只有当它们由单独的类加载器(即 webapp 类加载器)处理时才能完成此操作。
另请注意,一般来说(尽管对您来说可能并非如此),不同的 Web 应用程序具有不同的生命周期,这意味着 Tomcat 可能必须与 Web 应用程序 B 同时支持使用一种版本的 log4j 的 Web 应用程序 A,而 Web 应用程序 B 使用不同的 log4j 版本。 log4j 的版本。
Not in the way I think you mean, because each webapp's loggers should be completely independent of loggers in other webapps. Because logging repositories are singletons, this can only be done if they are handled by separate Classloaders, i.e. the webapp class loaders.
Also note that in general (though it may not be the case for you), different webapps have different lifecycles, which means that Tomcat may have to support webapp A using one version of log4j at the same time as webapp B, which uses a different version of log4j.