我有一个现有的应用程序,它针对 log4j 执行所有日志记录。我们使用许多其他库,这些库要么也使用 log4j,要么针对 Commons Logging 进行日志记录,最终在我们的环境中使用 log4j。我们的依赖项之一甚至针对 slf4j 进行日志记录,这也可以正常工作,因为它最终也委托给 log4j。
现在,我想将 ehcache 添加到这个应用程序中以满足一些缓存需求。以前版本的 ehcache 使用 commons-logging,这在这种情况下可以完美运行,但是从1.6-beta1 版本开始,他们已经删除了对 commons-logging 的依赖,并将其替换为 java.util.logging。
不太熟悉 java.util.logging 提供的内置 JDK 日志记录,是否有一种简单的方法可以将发送到 JUL 的任何日志消息记录到 log4j 中,这样我就可以使用现有配置并设置任何即将到来的日志记录来自ehcache?
查看 JUL 的 javadocs,看起来我可以设置一堆环境变量来更改LogManager
使用的实现,也许可以使用它来将 log4j 包装Logger
在 JULLogger
类中。这是正确的方法吗?
具有讽刺意味的是,当(大多数)世界其他地方使用 3rd 方库时,库使用内置 JDK 日志记录会引起如此头痛。