所以我一直在移植我们的一些服务来使用logback而不是log4j而且我一直在使用log4j-over-slf4j jar欺骗我们的遗留依赖项的log4j。唯一的问题是log4j-over-slf4j没有实现很多log4j的类,所以我看到一个不错的几个类没有从依赖jar发现异常。人们如何解决这个问题?将nlog4j放入类路径而不是log4j-over-slf4j jar就足够了吗?我还没有测试过这个最后的想法,但明天我正在计划。
参考:
答案 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已不再积极开发,我想知道这是否是一个很好的长期解决方案。