我想在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包未暴露给类路径,因此发生了类未找到异常。
任何帮助都非常感谢这件事。
答案 0 :(得分:3)
通常,如果通过System.setProperty
API设置属性不起作用(可能因为该属性已经在之前读过甚至可以覆盖它),您应该尝试设置它从JVM开始,在命令行输入“-D”参数:
-Djava.util.logging.manager=org.apache.logging.log4j.jul.LogManager