如何在OSGi环境中为log4j2 JUL适配器设置系统属性

时间:2015-06-13 05:08:59

标签: java logging log4j osgi log4j2

我想在OSGi环境中使用log4j2 JUL适配器。所以我直接使用了log4j2 OSGi包并在我自己的一个自定义OSGi包中设置了以下系统属性here

System.setProperty("java.util.logging.manager", "org.apache.logging.log4j.jul.LogManager");

似乎这个系统属性没有设置,因为来自Java util框架的日志不会成为追加者。

我正在使用的OSGi框架是Eclipse Equinox

我可以在哪里设置此系统属性以使用OSGi?

修改

据我所知,问题是在JVM启动时非常乞求所需的属性,即java.util.logging.manager被设置为其默认值,因此在OSGi环境中设置它是无效的,即使我们不能使用-D选项设置此属性,因为log4j2 OSGi包未暴露给类路径,因此发生了类未找到异常。

任何帮助都非常感谢这件事。

1 个答案:

答案 0 :(得分:3)

通常,如果通过System.setProperty API设置属性不起作用(可能因为该属性已经在之前读过甚至可以覆盖它),您应该尝试设置它从JVM开始,在命令行输入“-D”参数:

-Djava.util.logging.manager=org.apache.logging.log4j.jul.LogManager