Gra*_*ant 12 java logging osgi log4j log4j2
我想在OSGi环境中使用log4j2 JUL适配器.所以我直接用log4j2 OSGi包,并提到在设置我的自定义OSGi包的一个下面的系统属性在这里:
System.setProperty("java.util.logging.manager", "org.apache.logging.log4j.jul.LogManager");
Run Code Online (Sandbox Code Playgroud)
看起来这个系统属性没有设置,因为来自Java util框架的日志不会成为appender.
我正在使用的OSGi框架是Eclipse Equinox.
我在哪里可以设置此系统属性以与OSGi一起使用?
编辑:
据我所知,这个问题是在JVM启动时非常乞求所需的属性即java.util.logging.manager设置为默认值,因此在OSGi环境中设置它是无效的,即使我们不能使用-D选项设置此属性,因为log4j2 OSGi包没有暴露给类路径,因此发生了类未找到异常.
任何帮助都非常感谢这件事.
一般来说,如果通过 API 设置属性System.setProperty不起作用(可能是因为在覆盖之前该属性已被读取),您应该尝试从 JVM 启动时进行设置,在命令中输入“-D”参数线:
-Djava.util.logging.manager=org.apache.logging.log4j.jul.LogManager
Run Code Online (Sandbox Code Playgroud)