2

因此,我一直在移植我们的一些服务以在 log4j 上使用 Logback,并且我一直在使用 log4j-over-slf4j jar 来欺骗 log4j 以获得我们的遗留依赖项。唯一的问题是 log4j-over-slf4j 没有实现 log4j 的许多类,所以我看到一些不错的类没有发现依赖 jar 的异常。人们是如何解决这个问题的?将 nlog4j 放入类路径而不是 log4j-over-slf4j jar 就足够了吗?我还没有测试最后一个想法,但我计划明天做。

参考:

4

1 回答 1

4

唯一的问题是 log4j-over-slf4j 没有实现 log4j 的许多类,所以我看到一些不错的类没有发现依赖 jar 的异常。人们是如何解决这个问题的?

好吧,我猜您正面临您发布的Bridging legacy APIs链接中明确提到的“问题”:

什么时候不起作用?

当应用程序调用桥接器中不存在的 log4j 组件时,log4j-over-slf4j 模块将不起作用。例如,当应用程序代码直接引用 log4j 附加程序、过滤器或 PropertyConfigurator 时,log4j-over-slf4j 将不足以替代 log4j。但是,当通过配置文件配置 log4j 时,无论是 log4j.properties 还是 log4j.xml,log4j-over-slf4j 模块都应该可以正常工作。

如果依赖的 JAR 在您的控制之下,您应该尝试使用SLF4J 迁移器工具迁移代码。

将 nlog4j 放入类路径而不是 log4j-over-slf4j jar 就足够了吗?

这可能会解决问题,ClassNotFoundException但我想知道整个日志记录将如何工作。鉴于NLog4J不再积极开发,我想知道这是否是一个好的长期解决方案。

于 2010-10-26T23:31:08.600 回答