java - 使用 log4j 为每个 Web 应用程序和共享库分离日志文件

标签 java tomcat logging log4j shared-libraries

我在 Tomcat 服务器上运行的 Web 应用程序很少。每个应用程序都在自己的 war 中包含自己的 log4j 库副本。这允许为每个应用程序进行单独、灵活的日志记录配置。

我也有一些共享库(保存在 Tomcat 的共享库目录中)。我想在应用程序(使用它们)记录器输出之间共享库记录器输出(例如:如果应用程序 A 记录到文件 a.log,并使用库 b.jar,我希望 b.jar 也记录到 a.log 文件)。问题是,共享库由共享类加载器 加载,这导致它们无法访问应用程序定义的记录器。这个问题有解决办法吗?

最佳答案

可以看看SL4J bridging .您可以配置应用程序以将对 log4j 的调用重新路由到 sl4j,然后您可以对它们做任何您喜欢的事情,您可以将它们配置为在同一个文件中输出,或其他任何内容。

这里也有一篇很好的文章:Thoughts on Java logging and SLF4J

关于java - 使用 log4j 为每个 Web 应用程序和共享库分离日志文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2478844/

相关文章:

java - 如何使 2 个整数相除产生一个 float 而不是另一个整数?

java - 使用 itext 创建 "print-only"PDF

tomcat - Apache Tomcat 替换根 servlet 处理程序

Apache HTTPD/mod_proxy/Tomcat 和带客户端身份验证的 SSL

c++ - 如何在 C++ 中获取不特定于操作系统的应用程序数据/日志文件夹

java - BaseAdaper 中的广播接收器

java - 增加PermGen空间(Tomcat7、Windows Service)

java - 在 Ubuntu 上记录 Tomcat6

Git-列出作者创建的文件

java - 是否可以在 Camel 中轮询而不消耗消息?