最佳答案
我正在构建一个小型的 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)
我已经尝试了一些罐子的版本号越来越高和越来越低,也挖掘了 API 文档等... 但我无法找到和解决这个问题。
帮帮我,好吗?
虽然 logback 被认为是“战略性”日志框架,但是我在最终使用日志机制方面还有一些余地。不过,我希望使用 logback 或 log4j,并且我肯定希望通过一个公共配置将旧项目的日志合并到“新”日志框架中。