用LogBack替换Log4j的问题,log4j-over-slf4j.jar缺点

时间:2010-10-26 22:51:05

标签: java logging log4j slf4j logback

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

参考:

1 个答案:

答案 0 :(得分:4)

  

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

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

  

什么时候不起作用?

     

log4j-over-slf4j模块不会   当应用程序调用log4j时工作   不存在的组件   桥。例如,申请时   代码直接引用log4j   appenders,过滤器或   PropertyConfigurator,然后   log4j-over-slf4j将是一个   log4j的替换不足。   但是,配置log4j时   通过配置文件,不管它   log4j.properties或log4j.xml ,.   log4j-over-slf4j模块应该只是   工作得很好。

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

  

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

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