Spring-Boot-Protokollierung Konfiguration bei der Bereitstellung als .Krieg
Habe ich eine einfache spring-boot-Anwendung, die die Pakete .war-Datei in der Lage, die bereitgestellt werden, um einen externen Tomcat-container. Ich habe einen logback.xml (unten) in den classpath ("/WEB-INF/classes), jedoch, wenn Tomcat implementiert das Protokoll wird nicht in die Datei geschrieben.
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<include resource="org/springframework/boot/logging/logback/base.xml"/>
<logger name="org.springframework.web" level="DEBUG"/>
</configuration>
- Wenn Sie sicher nicht finden können, ein
spring.log
(unter dem Standard-temp-Verzeichnis), versuchen explizit die Eigenschaft systemLOG_FILE
beim starten von tomcat und stellen Sie sicher, dass das Verzeichnis beschreibbar ist (für tomcat).
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich habe gekämpft, mit dem, was vielleicht das gleiche Problem - Protokollierung funktioniert von unit-tests und der Ausführung der Anwendung 'main ()' - Methode, sondern im tomcat-er ignoriert meine Konfiguration komplett.
Es stellt sich heraus, dass beim Start von tomcat setzt eine Umgebungsvariable 'LOGGING_CONFIG' beschreiben den Ort der Anmeldung.Eigenschaften " der Datei. Dies kann gesehen werden in tomcat/bin/catalina.sh oder (.bat).
Spring-Boot liest auch die Umgebung auf Start, und als Teil seiner smart handling der Konfiguration, ich glaube, es wandelt LOGGING_CONFIG zur Anmeldung.config', das ist eine Eigenschaft, die es verwendet, um zu ermöglichen, Sie zu überschreiben, den Speicherort der die' logging-Konfiguration.
Das Problem ist, dass es versucht dann, das zu behandeln-Wert als Dateinamen und laden Sie es (es ist tatsächlich auch nicht ein Dateiname, sondern ein Java-system-Eigenschaft beschreibt, dass eine Datei), aber es schlägt fehl, und nicht initialisieren, deren Anmeldung ordnungsgemäß und weiter mit dem, was Tomcat-setup standardmäßig.
Die Lösung zu sein scheint, um sicherzustellen, dass die Umgebungsvariable gesetzt ersten, zum Beispiel so etwas wie (die IDE sollte eine option für diese - in Intellij Laufen -> Bearbeiten von Konfigurationen -> Umgebungsvariablen> geben Sie den Namen und den Wert aus der folgenden):
Spring Boot verwenden, wird diesem der Vorzug zu LOGGING_CONFIG von Tomcat und funktioniert wie erwartet.
Bisher habe ich jedoch bisher nicht bekommen, diese arbeiten innerhalb einer Konfigurations-Datei, wie die Anwendung.Eigenschaften, was bedeutet, dass dies ist eine Globale Einstellung für alle Anwendungen bereitgestellt, die Tomcat-Instanz.
EDIT: dies wäre aufgrund der Tatsache, dass die Umgebungsvariablen überschreiben die lokale Konfiguration sowieso, die in jedem anderen Fall, aber das wäre, was Sie wollte 🙁
EDIT 2: ich kann bestätigen, dass, wie der Spring-Boot 1.1.6, dieses Problem wurde umgangen - es wird protokolliert, wie eine Warnung und es wird weiterhin die vorhandenen (und zu korrigieren) - Protokollierung-Konfiguration. Leider können Sie nicht deaktivieren Sie die Warnmeldung selbst in Ihrem logback.xml Datei.