我正在构建一个小的Java应用程序,并希望使用logback进行日志记录。日志框架不兼容
我的应用程序有一个较旧的项目,通过
org.apache.commons | com.springsource.org.apache.commons.logging | 1.1.1
做它的日志记录的依赖...所以我的计划是使用
org.slf4j | jcl-over-slf4j | 1.5.6
...重定向JCL记录到
org.slf4j | slf4j-api | 1.6.0
...最终以
ch.qos.logback | logback-classic | 0.9.22
ch.qos.logback | logback-core | 0.9.22
因此,我的应用程序可以通过其slf4j API登录logback,而旧库代码可以通过重定向登录到同一位置。
唉,这导致
java.lang.NoSuchMethodError: org.slf4j.spi.LocationAwareLogger.log(Lorg/slf4j/Marker;Ljava/lang/String;ILjava/lang/String;Ljava/lang/Throwable;)V
at org.apache.commons.logging.impl.SLF4JLocationAwareLog.info(SLF4JLocationAwareLog.java:141)
我已经在一些罐子尝试更高和更低verision号并通过API文档和挖掘等......但我无法找到并解决问题。
请帮忙吗?
尽管logback被认为是“战略性”日志框架,但我仍有一些余地,我最终使用日志机制。不过,我希望可以使用logback或log4j,而且我确实希望通过通用配置将旧项目的日志记录合并到“新”日志记录框架的最终结果中。
那当然有效;非常感谢你!我没有使用这些罐子的1.6.1,因为它们看起来不可用。我对m2eclipse非常恼火,它旨在向我展示所有可用的版本,但神秘地丢弃了大量的版本。 – 2010-08-20 07:45:18
仅仅为了其他人的兴趣:我最终在依赖图中出现了红色箭头,因为即使最新的logback-core也坚持使用slf4j-1.6.0。在所有红色箭头消失之前,花了更多的时间来处理版本,但现在它既可以工作也可以全部使用蓝色箭头。 – 2010-08-20 08:32:10
我到底该怎么做。 – user1721803 2014-09-23 23:29:15