使用pax-exam在本机容器中配置pax-logging

Miq*_*uel 3 java osgi pax pax-runner pax-exam

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

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

我试图设置这个,但似乎不起作用的方式是使用:

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

我很感激您的任何建议.非常感谢!

Har*_*ann 5

一些可能有帮助的评论:

  1. 大同记录是大同考试置备默认的日志解决方案,但你可以通过使用现成的架子SLF4J和喜欢的logback任何后端覆盖它,看到这篇文章的更多细节.我发现这更容易使用.

  2. 我不确定该bundles.configuration.location属性应该针对哪个捆绑或服务.这看起来像Pax ConfMan,它不是由Pax考试自动配置的,所以除非你自己照顾它,否则该属性没有效果就不足为奇了.

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