我正在尝试使 logback 与 ServiceMix 4.3.0 (karaf 2.1.3) 一起使用,但没有成功。有没有人已经成功地让它工作了?(使用任何版本的 serviceMix + slf4j + logback)
这是我的情况。我能够使(Logback + slf4j + 我的应用程序)在 tomcat 中一起工作。现在我想让它们在 ServiceMix 中一起工作。ServiceMix 使用 OPS4J (org.ops4j.pax.logging) 来提供 slf4j (1.5.11)。所以,我必须使用 ServiceMix 提供的 slf4j(我不必安装新的 slf4j 包),接下来我安装了 Logback Core Module (0.9.20)、Logback Classic Module (0.9.20)、jcl-over-slf4j (1.5 .11) 为了使 slf4j 和 logback 一起工作。安装很好,没有错误。在我的应用程序中,我有一个代码片段可以从外部文件夹读取 logback.xml。
fis = new FileInputStream(System.getProperty("logconf") + "/logback.xml");
LoggerContext lc = (LoggerContext) LoggerFactory.getILoggerFactory();
JoranConfigurator configurator = new JoranConfigurator();
configurator.setContext(lc);
lc.reset();
configurator.doConfigure(fis);
但是每当运行此代码时,我总是会收到此错误:
java.lang.ClassCastException: org.ops4j.pax.logging.slf4j.Slf4jLoggerFactory 不能转换为 ch.qos.logback.classic.LoggerContext。
因此,我认为 ServiceMix 提供的 slf4j 不适用于 logback 库。