在其他服务之前激活 OSGI LogListener?

Activating an OSGI LogListener before other services?

我正在编写一个基于 OSGI 的桌面应用程序,使用 Apache Felix、声明式服务和 Maven。它将使用 JavaFX,所以我也在使用 Drombler FX

在我开发的包中,我想使用适当的日志记录机制,我目前正在努力使 Apache Felix Log 工作。我获得 LogService 没问题,但这不足以使输出出现在控制台上。

The word on the net is that Everit's osgi-loglistener-slf4j 将完成这项工作,并且 - 果然 - 在 osgi-loglistener-slf4j 被激活后日志输出出现在控制台上。

然而,osgi-loglistener-slf4j直到我自己的所有bundle之后才被激活,所以输出none我感兴趣的日志信息。我已经尝试在我的第一个包中创建 @ReferenceLogLevel 以尝试强制激活 osgi-loglistener-slf4j,但没有成功。

如何先激活 osgi-loglistener-slf4j?我已经阅读了有关启动级别的信息,但是我无法找到有关如何在我的上下文中应用它们的任何信息(即桌面而不是服务器,所以没有 PAX 或 Karaf;Maven;我使用 NetBeans,所以没有 Eclipse)。

Drombler FX 使用 SLF4J:http://www.drombler.org/drombler-fx/0.7/docs/tutorial/logging.html#logging

只需使用以下内容即可:

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;  

...

private static final Logger LOG = LoggerFactory.getLogger(MyClass.class);

在 POM 中添加以下依赖项:

    <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-api</artifactId>
    </dependency>