我想在 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 包未暴露给类路径,因此会发生类未找到异常。
在这件事上非常感谢任何帮助。
最佳答案
通常,如果通过 System.setProperty
API 设置属性不起作用(可能是因为该属性之前您甚至可以覆盖它),你应该尝试从 JVM 开始设置它,在命令行输入“-D”参数:
-Djava.util.logging.manager=org.apache.logging.log4j.jul.LogManager
关于java - 如何在 OSGi 环境中为 log4j2 JUL 适配器设置系统属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30815326/