每次Felix启动一个包时,我都会得到以下行的日志记录输出:

BundleEvent STARTED
BundleEvent RESOLVED
ServiceEvent REGISTERED


日志级别是debug,它不是来自任何felix类,而是来自我自己的类,因此我无法对其进行过滤,仍然可以从自己的代码中看到调试消息。

您如何降低Felix的日志级别?我尝试了明显的felix.log.level无济于事(加上它默认为错误)。有任何想法吗?谢谢!

更新:这是导致此情况的堆栈跟踪:

Thread [FelixDispatchQueue] (Suspended (entry into method log in PaxLoggingServiceImpl))
    PaxLoggingServiceImpl.log(Bundle, ServiceReference, int, String, Throwable) line: 121
    PaxLoggingServiceImpl.log(Bundle, int, String, Throwable) line: 115
    FrameworkHandler.bundleChanged(BundleEvent) line: 93
    EventDispatcher.invokeBundleListenerCallback(Bundle, EventListener, EventObject) line: 868
    EventDispatcher.fireEventImmediately(EventDispatcher, int, Map, EventObject, Dictionary) line: 789
    EventDispatcher.run() line: 1088
    EventDispatcher.access$000() line: 54
    EventDispatcher$1.run() line: 101
    Thread.run() line: 662

最佳答案

只需在此处复制您的解决方案文字,即可将问题标记为已回答。

这是由PAX-Logging而非felix生成的!
它由系统属性控制(例如,用-Dorg.ops4j.pax.logging.service.frameworkEventsLogLevel="INFO"进行更改)。但是,您不能将其设置为低于DEBUG的任何值。相关的类,如果要更改,则为org.ops4j.pax.logging.service.internal.FrameworkHandler

关于java - Felix有关ServiceEvent和BundleEvent的日志级别,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16354437/

10-12 21:17