我构建了一个依赖外部库(如 Quartz)的 OSGi 应用程序。 我为所有这些库创建了单独的包,但问题是它们有自己的日志记录配置。
所以当我运行我的应用程序时,quartz 会将日志记录到控制台
[DefaultQuartzScheduler_QuartzSchedulerThread] DEBUG o.quartz.core.QuartzSchedulerThread - batch acquisition of 0 triggers
我对如何正确限制或重定向日志有点迷茫。我在 Quartz 包中有一个 log4j.xml
文件,它试图将日志记录级别设置为错误,但没有效果
<logger name="org.quartz">
<level value="error" />
<appender-ref ref="console" />
</logger>
我一直在寻找 OSGi 日志记录策略,但结果更加困惑。
最佳答案
看看Pax-Logging - 它将处理大多数日志记录框架。只需确保您没有部署实际的 log4j jar,Pax-Logging api 和实现包将为您处理一切。
您可以设置默认日志记录级别,但要进行更详细的配置,您还需要 ConfigAdmin 服务。参见 http://team.ops4j.org/wiki/display/paxlogging/Configuration
关于logging - OSGi - 外部 jar 文件的日志记录配置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8529356/