【发布时间】:2010-10-26 13:52:07
【问题描述】:
我有一个现有的应用程序,它针对 log4j 执行所有日志记录。我们使用了许多其他库,这些库要么也使用 log4j,要么针对 Commons Logging 进行记录,最终在我们的环境中使用 log4j。我们的依赖项之一甚至针对 slf4j 进行日志记录,这也可以正常工作,因为它最终也会委托给 log4j。
现在,我想为这个应用程序添加 ehcache 以满足一些缓存需求。以前版本的 ehcache 使用 commons-logging,在这种情况下可以完美运行,但是从 version 1.6-beta1 开始,他们已经删除了对 commons-logging 的依赖,并用 java.util.logging 代替了它。
不太熟悉 java.util.logging 提供的内置 JDK 日志记录,有没有一种简单的方法可以将发送到 JUL 的任何日志消息记录到 log4j 中,这样我就可以使用我现有的配置并设置任何来自 ehcache 的日志记录?
查看 JUL 的 javadocs,看起来我可以设置一堆环境变量来更改使用哪个 LogManager 实现,也许用它来将 log4j Loggers 包装在 JUL Logger 类中.这是正确的方法吗?
具有讽刺意味的是,当世界其他地方(大部分)使用 3rd 方库时,库使用内置 JDK 日志记录会引起如此头痛。
【问题讨论】:
-
对于 Log4j 2,请参阅 stackoverflow.com/q/21781026
标签: java logging log4j apache-commons slf4j