我正在使用 Apache Felix、声明式服务和 Maven 编写一个基于 OSGI 的桌面应用程序。它将使用 JavaFX,所以我使用 Drombler FX也是。
在我开发的包中,我想使用适当的日志记录机制,我目前正在尝试制作 Apache Felix Log工作。我在获取 LogService
时没有问题,但这不足以让输出出现在控制台上。
The word on the net是 Everit 的 osgi-loglistener-slf4j
将完成这项工作 - 果然 - 在 osgi-loglistener-slf4j
被激活后日志输出出现在控制台上。
但是,osgi-loglistener-slf4j
直到在 我自己的包之后才被激活,所以没有我感兴趣的日志信息被输出。我已经尝试在我的第一个包中创建一个 @Reference
到 LogLevel
以尝试强制激活 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>
关于maven - 在其他服务之前激活 OSGI LogListener?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34572970/