在 OSGi 中,日志前端和实际输出是分开的。
因此,通过使用LogService,这并不意味着例如将任何内容写入控制台。这是LogReaderService负责的。
在我当前的运行时,我添加了org.apache.felix.log,它带来了一个应该负责输出的 LogReaderService-Implementation。但是我仍然在控制台上看不到任何东西……尽管其他捆绑包中有很多其他东西。
在下一步中,我创建了自己的 LogListener,它应该由 LogServiceReader 调用。我只是使用了这篇文章的代码,调试了Activator,看看是否添加了监听器。还是没有输出。
最后我检查了 Felix 属性并设置了 felix.log.level=3 (Info) 但同样没有输出。我更想知道的是,尽管将级别设置为信息,我仍然可以看到很多调试信息?
16:47:46.311 [qtp1593165620-27] DEBUG org.eclipse.jetty.http.HttpParser
在我看来,有不同的日志记录策略,它们使用不同的配置属性。例如,在我将 pax-logging-service(它使用经典的日志记录方法)添加到我的运行时后,我可以看到输出,但目前我想坚持使用 felix-logging。
有人可以解释一下如何禁用 Blueprint-Debug-Level,我猜这是导致当前输出的原因,并通过 LogService 启用简单的 felix-logging?必须有一个标准控制台实现,即使它没有在规范中指定。