OSGi使用spring-DM扩展器记录日志

时间:2010-05-05 14:11:42

标签: java spring logging osgi equinox

我的设置:我能够创建一个简单的OSGi捆绑包,将Log4J作为我的日志记录框架,当部署到我的OSGi容器(Equinox)时,我的日志记录配置非常简单,并且单独配置用于配置我的日志记录的bundle fragment。这个设置没有涉及弹簧,它的效果非常好。

我的问题:我正在转换一个使用log4j作为其OSGi日志框架的spring应用程序,第一个阶段是为我的spring应用程序创建各种捆绑包,我现在已经完成了。我遇到的问题是,与非spring应用程序一起使用的OSGi日志记录片段包不会配置我的spring启用的包。

我知道捆绑包是活动的,因为system.out.println确实有效,但我的所有日​​志记录配置都不起作用。我在控制台中什么都看不到我确实看到很多弹簧输出确认我的捆绑服务暴露但没有记录。

任何建议表示赞赏。

1 个答案:

答案 0 :(得分:2)

我现在已经解决了这个问题,它带走了我一天的勇气,所以我希望有一天能帮助别人。

我找到了文章How to use Pax Logging in my bundles并且它提到确保我在我的清单中使用了以下内容

Import-Package: org.apache.log4j; version="[1.2,1.3)"; provider=paxlogging,
 org.apache.commons.logging; version="[1.0,1.1)"; provider=paxlogging

此代码确保日志记录的提供程序是paxlogging。

没有它我现在从来没有能够看到我的任何日志消息我可以这很好配置这似乎不适用于片段所以我正在调查ConfAdmin这个但是现在我很开心可以通过适当的记录继续开发。