我试图让logback与ServiceMix 4.3.0 (Karaf2.1.3)一起工作,但没有成功。有人已经成功地让它运转了吗?(使用任何版本的serviceMix + slf4j + logback)
这是我的情况。我能够让(Logback + slf4j + my )在tomcat中一起工作。现在我想让他们在ServiceMix上一起工作。ServiceMix正在使用OPS4J (org.ops4j.pax.logging)提供slf4j (1.5.11)。因此,我必须使用由slf4j提供的ServiceMix (我不需要安装新的slf4j包),接下来我安装了Logback核心模块(0.9.20),Logback经典模块(0.9.20),jcl-overslf4j (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);但是,每当运行这段代码时,我总是会得到以下错误:
org.ops4j.pax.logging.slf4j.Slf4jLoggerFactory :不能将ch.qos.logback.classic.LoggerContext.转换为java.lang.ClassCastException
因此,我认为由slf4j开发的ServiceMix不适用于logback库。
发布于 2012-04-10 12:44:33
尚未发布的Pax-Logging 1.7支持登录。请参阅https://github.com/ops4j/org.ops4j.pax.logging
您想要做的事情永远不会适用于Pax日志记录,因为Pax有意包装记录器工厂,以允许运行时注入日志服务提供者。相反,如果您使用Pax-Logging 1.7 (有朝一日),那么您将通过org.ops4j.pax.logging.cfg文件进行logback配置,该文件指向您的logback.xml。
发布于 2015-09-23 10:11:08
我遇到了类似的错误,后来注意到我需要在osgi包中重新组织我的导入。slf4j是在登录后导入的,这会导致此错误。当我移除那个异常时,它就消失了。
https://stackoverflow.com/questions/9794473
复制相似问题