logback geben Sie den Speicherort der Standard-Konfiguration als system-property funktioniert nicht
export logback.configurationFile=123
auf mac os x habe diese:
"-bash: export: `logback.configurationFile=123': not a valid identifier"
Versucht export logback_configurationFile=123
arbeitete. aber logback nicht scheinen zu erkennen, dass die env-Variablen. Irgendwelche Vorschläge?
- Tut logback auch für diese variable? Ich dachte, es sah für logback.xml auf dem classpath?
- es funktioniert. wenn ich java -Dlogback.configurationFile=was auch immer, es wird funktionieren.
- schön, ich bin mir ziemlich sicher, dass bash nicht zulassen, Punkte in env-Variablen (bash als Standard in OsX, wenn ich mich correclyt). Es gibt Muscheln, die dies unterstützen wie csh und tcsh...
- Wäre es nicht gut genug, um es zu übergeben, mit -D ?
- was wäre, wenn es eine web-app?
Du musst angemeldet sein, um einen Kommentar abzugeben.
-Dlogback.configurationFile
ist nicht das gleiche wie die Einstellung es als Umgebungsvariable.Dem-D flag ist ein Java parameter an das Programm (erreichbar durch
System.getProperty()
), während die environment-variable definiertexport
zugänglich sein wird durchSystem.getenv()
.Blick auf die Logback-code sieht es aus wie es verwendet
System.getProperty()
zu Lesen, dielogback.configurationFile
Wert.So, in Wirklichkeit haben Sie übergeben die parameter an die JVM beim Start, dies bedeutet, dass Sie können setzen Sie die Umgebungsvariable auf das, was Sie mögen und verwenden Sie es, wenn Sie starten Sie die JVM.
System.setEnv(...
FWIW stackoverflow.com/questions/21885787/...Ich denke, dass auch so funktionieren sollte. Aber ich habe nicht wirklich versuchen, es durch meine eigenen.
Dann würden Sie nicht brauchen, um die opt auf den Aufruf Ihrer app. Aber der Nachteil wäre, dass alle Laufenden Java-Programme würde diese Einstellung verwenden.
Können Sie auch Folgendes tun
Exportieren Sie Ihre JVM-Argumente mit logback Konfigurationsdatei.
Export andere Dinge, die Sie brauchen, wie die main-Klasse und es ist Argumente
Dann Ihr Programm auszuführen