首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使logback (日志库)与ServiceMix (Karaf + ops4j日志记录)一起工作

如何使logback (日志库)与ServiceMix (Karaf + ops4j日志记录)一起工作
EN

Stack Overflow用户
提问于 2012-03-20 20:33:25
回答 2查看 3.6K关注 0票数 3

我试图让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的代码片段。

代码语言:javascript
复制
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库。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 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。

票数 3
EN

Stack Overflow用户

发布于 2015-09-23 10:11:08

我遇到了类似的错误,后来注意到我需要在osgi包中重新组织我的导入。slf4j是在登录后导入的,这会导致此错误。当我移除那个异常时,它就消失了。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9794473

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档