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

标签 maven logging apache-felix declarative-services drombler-fx

我正在使用 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 直到 我自己的包之后才被激活,所以没有我感兴趣的日志信息被输出。我已经尝试在我的第一个包中创建一个 @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>

关于maven - 在其他服务之前激活 OSGI LogListener?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34572970/

相关文章:

java - Spring + hibernate + postgresql

java - 替换 commons-logging 时 jcl-slf4j 和 axis 1.4 异常

java - 使用 logback 进行基于组件的日志记录(或 : intercept foreign log messages)

OSGI @Component 注解在扩展现有 OSGI 服务时不包括基类所需的引用

java - OSGI SCR 框架中的可选依赖项

java - 使用 maven 运行单个测试方法

maven - 从 Maven 站点中删除关于链接

java - Netbeans 中的 OSGi,检索服务时出现 ClassCastException

java - Maven 无法执行目标(无法解析依赖项)

java - 许多 Java 应用程序的集中日志记录 : Syslog vs JMS vs Http vs Local file