logback укажите расположение файла конфигурации по умолчанию, так как системное свойство не работает - PullRequest
8 голосов
/ 11 февраля 2012

export logback.configurationFile=123 на Mac OS X получил это: "-bash: экспорт:` logback.configurationFile = 123 ': недопустимый идентификатор "

Попробовал export logback_configurationFile=123, который работал.но logback, похоже, не распознает эту переменную env.Есть предложения?

Ответы [ 3 ]

28 голосов
/ 12 февраля 2012

-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}
2 голосов
/ 12 июля 2012

Полагаю, что так и должно работать. Но я не пробовал самостоятельно.

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

Тогда вам не нужно будет устанавливать опцию вызова вашего приложения. Но недостатком будет то, что все работающие программы Java будут использовать этот параметр.

1 голос
/ 20 мая 2013

Вы также можете сделать следующее Экспортируйте аргументы JVM с помощью файла конфигурации logback.

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
...