【发布时间】:2013-05-31 22:08:42
【问题描述】:
在命令行中,我可以运行一个 java 文件,例如:
java -Dlogback.configurationFile=logback.xml -jar floodlight.jar
但是在像 FUSE ESB 这样的 OSGi 容器中,我不能添加这样的
-Dlogback.configurationFile=logback.xml
使用 osgi 容器时如何做同样的事情?
【问题讨论】:
在命令行中,我可以运行一个 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 日志记录配置文件中指定您的 logback 配置文件位置。只需将org.ops4j.pax.logging.logback.config.file=<PATH_TO_LOGBACK_FILE>/logback.xml 添加到etc/org.ops4j.pax.logging.cfg 文件即可。
【讨论】: