在命令行中,我可以运行一个 java 文件,如:
java -Dlogback.configurationFile=logback.xml -jar floodlight.jar
但是在像 FUSE ESB 这样的 OSGi 容器中,我不能添加这样的
-Dlogback.configurationFile=logback.xml
使用 osgi 容器时如何做同样的事情?
您应该能够将所有系统属性添加到etc/system.properties
文件中。因此,在您的情况下,您可能会尝试附加:
logback.configurationFile=logback.xml
或者如果这不起作用并且您已将文件放在 etc 目录中:
logback.configurationFile=${karaf.home}/etc/logback.xml
请注意,这不是一个*.cfg
文件,因此不在配置管理员的范围内,可能需要重新启动。
Fuse ESB 具有支持 logback API 的 Pax Logging 服务。您可以在 Pax Logging 配置文件中指定您的 logback 配置文件位置。只需添加org.ops4j.pax.logging.logback.config.file=<PATH_TO_LOGBACK_FILE>/logback.xml
到etc/org.ops4j.pax.logging.cfg
文件中。