logback指定默认配置文件的位置作为系统属性不起作用

时间:2012-02-10 20:31:20

标签: logging logback

mac os x上的

export logback.configurationFile=123得到了这个: “-bash:export:`logback.configurationFile = 123':不是有效的标识符”

尝试过有效的export logback_configurationFile=123。但是logback似乎没有认识到env变量。有什么建议吗?

3 个答案:

答案 0 :(得分:28)

-Dlogback.configurationFile与将其设置为环境变量不同。

-D标志是程序的Java参数(可由System.getProperty()访问),export定义的环境变量可由System.getenv()访问。 查看Logback代码,看起来它使用System.getProperty()来读取logback.configurationFile值。

所以实际上你必须在启动时将参数传递给JVM,这意味着你可以将环境变量设置为你喜欢的任何东西,然后在启动JVM时使用它。

export LOGBACK_CONFIG_FILE_LOCATION=/tmp/logback.conf
java -Dlogback.configurationFile=${LOGBACK_CONFIG_FILE_LOCATION}

答案 1 :(得分:2)

我想这也应该有效。但我并没有真正尝试过它。

export JAVA_OPTS="$JAVA_OPTS -Dlogback.configurationFile=123"

然后,您无需在应用程序调用时设置选项。但缺点是所有正在运行的Java程序都会使用此设置。

答案 2 :(得分:1)

您还可以执行以下操作 使用logback configurationFile导出JVM参数。

export ALC_JVM_ARGS="-Dlogback.configurationFile=logconfig.xml"

导出你需要的其他东西,比如主类和它的参数

export MAIN_CLASS="Spring"
export MAIN_CLASS_ARGS="beans.xml"

然后执行你的程序

exec java $ALC_JVM_ARGS $MAIN_CLASS $MAIN_CLASS_ARGS