gpt4 book ai didi

osgi - 如何在 OSGi (Apache Felix) 中处理不同的日志记录解决方案

转载 作者:行者123 更新时间:2023-12-01 05:05:53 24 4
gpt4 key购买 nike

在 OSGi 中,日志前端和实际输出之间是分开的。

因此,通过使用 日志服务 ,这并不意味着任何内容都会写入控制台。这是什么日志阅读器服务 为...负责。

在我当前的运行时,我添加了 org.apache.felix.log 它带来了一个应该处理输出的 LogReaderService-Implementation。但我仍然没有在控制台上看到任何东西……尽管有很多来自其他捆绑包的其他东西。

在下一步中,我创建了自己的 LogListener,它应该由 LogServiceReader 调用。我刚刚使用了来自 this article 的代码并调试了 Activator 以查看是否添加了监听器。还是没有输出。

最后我检查了 Felix Properties 并设置了 felix.log.level=3 (信息)但同样,没有输出。
我更想知道的是,尽管将级别设置为 Info,我仍然可以看到很多 DEBUG-Information?

16:47:46.311 [qtp1593165620-27] DEBUG org.eclipse.jetty.http.HttpParser

在我看来,有不同的日志记录策略,它们使用不同的配置属性。例如,在我将 pax-logging-service(使用经典日志记录方法)添加到我的运行时后,我可以看到输出,但目前我想坚持使用 felix-logging。

有人可以解释一下如何禁用 Blueprint-Debug-Level,我猜这会导致当前输出,并通过 LogService 启用简单的 felix-logging? 即使规范中未指定,也必须有标准控制台实现。

最佳答案

感谢 Christian Schneider 和 Balazs Zsoldos:这两条评论都非常有帮助。

回答问题:我需要提供一个 ServiceTrackerCustomizer 如 Balazs 示例所示 here .因为我已经有了一个 ConsoleLogListener,所以用 TrackerCustomizer 注册监听器就足够了。

由于我目前的任务是迁移一个大型遗留应用程序,我想在其中引入 OSGi,因此使用 可能更有意义。 Pax-Logging 由于 log4j 已经在数百个类中使用,我们可能不会更改为 LogService。

可以通过将属性 org.ops4j.pax.logging.DefaultServiceLog.level 设置为 INFO 来调整 Pax-Logging 的输出

关于osgi - 如何在 OSGi (Apache Felix) 中处理不同的日志记录解决方案,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28882345/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com