0

我的设置:我能够使用 Log4J 作为我的日志框架创建一个简单的 OSGi 包,当部署到我的 OSGi 容器(Equinox)时,它工作得很好,我的日志配置非常简单,使用单独的包片段来配置我的日志。此设置不涉及弹簧,并且效果非常好。

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

我知道捆绑包处于活动状态,因为 system.out.println 确实可以工作,但是我的所有日​​志记录配置都不起作用。我在控制台中什么也看不到我确实看到很多 spring 输出确认我的捆绑服务已公开但没有日志记录。

任何建议表示赞赏。

4

1 回答 1

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,但现在我很高兴并且可以通过适当的日志继续开发。

于 2010-05-05T16:32:50.417 回答