【问题标题】:Configuring pax-logging in a native container with pax-exam使用 pax-exam 在本机容器中配置 pax-logging
【发布时间】:2012-08-14 07:03:21
【问题描述】:

我知道这有点具体,但我已经尝试了我能想到的一切。我正在使用 pax-exam 运行一些集成测试,并且日志记录应该使用 pax-logging。

这在直接运行 felix 容器时工作正常,但如果我通过 pax-exam 启动它,pax-logging 永远不会被配置(它没有 bundles.configuration.location vm proeperty,所​​以它找不到 services/org.ops4j.pax.logging.properties )。

我尝试设置但似乎不起作用的方式是使用:

@Configuration
public Option[] configuration() throws IOException {
    Option[] options = new Option[]{
        vmOption("-Dbundles.configuration.location=mypath)
    }
    return options;
}

如果您有任何建议,我将不胜感激。非常感谢!

【问题讨论】:

    标签: java osgi pax pax-runner pax-exam


    【解决方案1】:

    一些可能有帮助的评论:

    1. Pax Logging 是 Pax Exam 提供的默认日志记录解决方案,但您可以使用现成的 SLF4J 和任何后端(如 logback)覆盖它,有关详细信息,请参阅 this article。我发现这更容易使用。

    2. 我不确定这个 bundles.configuration.location 属性应该针对哪个捆绑包或服务。这看起来像 Pax ConfMan,它不是由 Pax Exam 自动配置的,所以除非你自己处理它,否则属性不起作用也就不足为奇了。

    3. 通过 Pax Exam 选项设置系统属性的首选(但功能相同)方法是 systemProperty("foo").value("bar")

    【讨论】:

    • CoreOptions.systemProperty("org.ops4j.pax.logging.DefaultServiceLog.level").value("WARN") 改变了我的设置,干杯
    猜你喜欢
    • 1970-01-01
    • 2015-05-22
    • 2014-03-17
    • 2015-11-10
    • 2018-08-14
    • 1970-01-01
    • 1970-01-01
    • 2014-09-28
    • 1970-01-01
    相关资源
    最近更新 更多