2012-02-10 10 views
8

export logback.configurationFile=123 na Mac OS X got to: "-bash: eksport:` logback.configurationFile = 123' : nie poprawny identyfikator"logback określić lokalizację pliku konfiguracyjnego jako domyślne właściwości systemu nie działa

Wypróbowałem export logback_configurationFile=123, który działał. ale logback nie rozpoznaje tej zmiennej env. Jakieś sugestie?

+0

Czy logback nawet zajrzeć do tej zmiennej? Myślałem, że szuka logback.xml w ścieżce klas? –

+0

to robi. jeśli zrobię java -Dlogback.configurationFile = cokolwiek, to zadziała. – Bobo

+0

miło, jestem całkiem pewny, że bash nie pozwoli kropek w zmiennych env (bash będzie domyślnym w OsX, jeśli pamiętam correclyt). Istnieją powłoki, które obsługują to jak csh i tcsh ... –

Odpowiedz

26

-Dlogback.configurationFile to nie to samo co ustawienie zmiennej środowiskowej.

Flaga -D jest parametrem Java dla twojego programu (dostępny przez System.getProperty()), podczas gdy zmienna środowiskowa zdefiniowana przez export będzie dostępna przez System.getenv(). Patrząc na kod Logback wygląda na to, że używa on wartości , aby odczytać wartość logback.configurationFile.

Tak więc w rzeczywistości, po uruchomieniu musisz przekazać parametr do JVM, co oznacza, że ​​możesz ustawić zmienną środowiskową na dowolną, a następnie po prostu użyć jej podczas uruchamiania JVM.

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

To bardzo pomocne, dzięki! – Bobo

2

Myślę, że również w ten sposób powinno działać. Ale naprawdę nie spróbowałem tego sam.

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

Wtedy nie trzeba ustawiać opcji wyboru połączenia z aplikacją. Ale wadą byłoby to, że wszystkie działające programy Java używałyby tego ustawienia.

+4

Spekulowanie nikomu nie pomaga. Wypróbuj go lub nie odpowiadaj. – johannes

1

Możesz również wykonać następujące czynności: Wyeksportuj swoje argumenty maszyny JVM za pomocą parametru konfiguracyjnego logbackFile.

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

eksportowych innych rzeczy, które trzeba jak główne klasy i to argumenty

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

następnie uruchomić program

exec java $ALC_JVM_ARGS $MAIN_CLASS $MAIN_CLASS_ARGS