java - 使用 sl4j 从 eclipse osgi 插件登录

标签 java eclipse logging osgi slf4j

我正在使用我的 eclipse (luna) osgi 包中的 sl4j。一切正常,直到我升级到 eclipse mars。 我在某处弄坏了一些东西,但我无法弄清楚我做错了什么。

在尝试恢复所有内容几个小时后,我决定编写一个简单的 osgi 包来测试我理解的机制,我认为

我正在通过新的 osgi 向导创建这个简单的包:

list 是:

Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: Service
Bundle-SymbolicName: service
Bundle-Version: 1.0.0.qualifier
Bundle-Activator: service.Activator
Bundle-RequiredExecutionEnvironment: JavaSE-1.8
Import-Package: org.osgi.framework;version="1.3.0",
 org.slf4j
Require-Bundle: ch.qos.logback.classic,
 ch.qos.logback.core

激活码是:

public class Activator implements BundleActivator {
private Logger logger=LoggerFactory.getLogger(this.getClass());

public void start(BundleContext context) throws Exception {
    System.out.println("Hello World!!");
    logger.error("logging error {}", this);
}

public void stop(BundleContext context) throws Exception {
    System.out.println("Goodbye World!!");
}

然后我在 Activator.java 旁边放了一个 logback.xml 配置文件。

但我不断遇到众所周知的消息:

SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
SLF4J: Defaulting to no-operation (NOP) logger implementation
SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.
Hello World!!

当我将包作为 OSGI 框架调试目标运行时。

我检查了那个 url、stackexchange 和其他网站上以前的帖子,但我看不出有什么问题。

我知道这一定是一个我看不到的简单故障。

感谢您的帮助。

最佳答案

您不需要 logback 的 Require-Bundle,因为您的 bundle 不直接依赖于 logback。在运行时,您必须确保安装了 logback 并且未安装 slf4j-api。

另见 this post了解如何在 OSGi 中配置 logback。

关于java - 使用 sl4j 从 eclipse osgi 插件登录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35226218/

相关文章:

java - 无法将图像图标加载到 Netbeans 中的按钮

java - 如何在 Restful Web 服务中编辑默认 URL

android - 无法连接到虚拟机

python - python logging.FileHandler 默认使用 block 缓冲吗?

logging - 扭曲。如何为每个请求在日志中写入唯一的前缀

java - 尝试/捕获并抛出

java - 这应该是类(class)成员吗?

java - 在 Android 中初始化 VM 时出错(java.lang.StackOverflowError)

java - Apache Spark 在 IntelliJ 中给出错误

java - 如何使用Java在控制台中的另外两行之间插入一行?