2012-02-10 3 views
8

export logback.configurationFile=123 su Mac OS X ottenuto questo: "-bash: export:` logback.configurationFile = 123' : non un identificatore valido"logback specificare la posizione del file di configurazione di default come proprietà di sistema che non funziona

Provato export logback_configurationFile=123 che ha funzionato. ma il logback non sembra riconoscere quella variabile env. Eventuali suggerimenti?

+0

Vuol logback anche guardare per quella variabile? Ho pensato che cercasse logback.xml sul classpath? –

+0

lo fa. se faccio java -Dlogback.configurationFile = qualunque cosa, funzionerà. – Bobo

+0

nice, sono abbastanza sicuro che bash non permetterà punti nelle variabili env (bash è il default in OsX se ricordo correclyt). Ci sono shell che supportano questo come csh e tcsh ... –

risposta

26

-Dlogback.configurationFile non equivale a impostarlo come variabile di ambiente.

Il flag -D è un parametro Java per il programma (accessibile da System.getProperty()) mentre la variabile di ambiente definita da export sarà accessibile da System.getenv(). Guardando il codice di ritorno sembra che usi System.getProperty() per leggere il valore logback.configurationFile.

Quindi in realtà è necessario passare il parametro alla JVM all'avvio, ciò significa che è possibile impostare la variabile di ambiente in base alle proprie esigenze e quindi utilizzarla appena si avvia JVM.

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

che è molto utile, grazie! – Bobo

2

Immagino che anche quella via dovrebbe funzionare. Ma non l'ho davvero provato da solo.

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

Quindi non è necessario impostare l'opzione per la chiamata della vostra app. Ma lo svantaggio sarebbe che tutti i programmi Java in esecuzione usassero questa impostazione.

+4

Speculare non aiuta nessuno. Provalo o non rispondere. – johannes

1

È inoltre possibile effettuare le seguenti operazioni Esportare gli argomenti JVM con file di configurazione di logback.

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

Export altre cose è necessario come classe principale ed è argomenti

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

Quindi eseguire il programma di

exec java $ALC_JVM_ARGS $MAIN_CLASS $MAIN_CLASS_ARGS