Spring Boot: Wie kann ich die Protokollierungsebene mit application.properties einstellen?
Dies ist eine sehr einfache Frage, aber ich kann keine Informationen finden.
(Vielleicht sind meine Kenntnisse über Java-Frameworks sehr lückenhaft)
Wie kann ich die Protokollierungsebene mit application.properties einstellen?
Und den Speicherort der Protokollierungsdatei, etc?
266
12
Update: Ab Spring Boot v1.2.0.RELEASE gelten die Einstellungen in
application.properties
oderapplication.yml
. Siehe den Abschnitt [Log Levels] (http://docs.spring.io/spring-boot/docs/1.2.1.RELEASE/reference/htmlsingle/#boot-features-custom-log-levels) des Referenzhandbuchs.Für frühere Versionen von Spring Boot können Sie das nicht. Sie müssen einfach die normale Konfiguration für Ihr Logging-Framework (log4j, logback) dafür verwenden. Fügen Sie die entsprechende Konfigurationsdatei (
log4j.xml
oderlogback.xml
) in das Verzeichnissrc/main/resources
ein und konfigurieren Sie nach Ihren Wünschen.Sie können die Debug-Protokollierung aktivieren, indem Sie
--debug
angeben, wenn Sie die Anwendung über die Kommandozeile starten.Spring Boot bietet auch einen netten Ausgangspunkt für logback, um einige Voreinstellungen, Farbgebung usw. zu konfigurieren, die base.xml Datei, die Sie einfach in Ihre logback.xml Datei einfügen können. (Dies wird auch von der Standard-logback.xml in Spring Boot empfohlen.
Sie können dies über Ihre application.properties tun.
logging.level.=ERROR
-> Setzt den Root-Logging-Level auf Error...
logging.level.=DEBUG
-> Setzt den Root-Logging-Level auf DEBUGlogging.file=${java.io.tmpdir}/myapp.log
-> Setzt den absoluten Pfad der Protokolldatei auf TMPDIR/myapp.logEin vernünftiger Standardsatz von application.properties bezüglich der Protokollierung mit Profilen wäre: application.properties:
application-dev.properties:
Wenn Sie in Ihrer bevorzugten IDE entwickeln, fügen Sie einfach ein
-Dspring.profiles.active=dev
als VM-Argument in die Run/Debug-Konfiguration Ihrer Anwendung ein.Dadurch erhalten Sie eine reine Fehlerprotokollierung in der Produktion und eine Debugprotokollierung während der Entwicklung, OHNE die Ausgabe in eine Protokolldatei zu schreiben. Dies verbessert die Leistung während der Entwicklung (und erspart SSD-Laufwerken einige Betriebsstunden ;)).
Der richtige Weg, den root Logging-Level zu setzen, ist die Verwendung der Eigenschaft
logging.level.root
. Siehe [Dokumentation][1], die aktualisiert wurde, seit diese Frage ursprünglich gestellt wurde.Beispiel:
[1]: http://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#boot-features-custom-log-levels
Angenommen, Ihre Anwendung hat den Paketnamen
com.company.myproject
. Dann können Sie die Protokollierungsstufe für Klassen innerhalb Ihres Projekts wie unten in den application.properties-Dateien angegeben einstellenlogging.level.org.springframework.web = DEBUG
undlogging.level.org.hibernate = DEBUG
setzen die Protokollierungsstufe nur für Klassen des Spring-Frameworks web und Hibernate.Um den Speicherort der Protokolldatei festzulegen, verwenden Sie
Wenn Sie Spring Boot verwenden, können Sie direkt folgende Eigenschaften in der Datei application.properties hinzufügen, um die Protokollierungsstufe festzulegen, Protokollierungsmuster anzupassen und Protokolle in der externen Datei zu speichern.
Dabei handelt es sich um verschiedene Protokollierungsebenen und ihre Reihenfolge vom Minimum << Maximum.
Aus << Maximum; FATAL << < FEHLER << < WARNEN << < INFO <<< DEBUG <<< TRACE <<< ALLE
Bitte gehen Sie durch diesen Link, um Ihr Protokoll anschaulicher zu gestalten.
https://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-logging.html
Der Tipp von Dave Syer ist wichtig, denn durch Hinzufügen von
debug=true
zu application.properties wird die Debug-Protokollierung tatsächlich aktiviert.Für den Fall, dass Sie ein anderes Protokollierungs-Framework verwenden wollen, z.B. log4j, ist es meiner Meinung nach am einfachsten, die eigene Protokollierung von Springboots zu deaktivieren und eine eigene zu implementieren. Auf diese Weise kann ich jede Protokollierungsebene innerhalb einer Datei, log4j.xml (in meinem Fall), konfigurieren.
Um dies zu erreichen, müssen Sie einfach diese Zeilen zu Ihrer pom.xml hinzufügen:
Wahrscheinlich haben Sie bereits die erste Abhängigkeit und benötigen nur die beiden anderen. Bitte beachten Sie, dass dieses Beispiel nur log4j abdeckt. Das'ist alles, jetzt sind Sie'bereit, die Protokollierung für den Bootvorgang innerhalb Ihrer log4j-Konfigurationsdatei zu konfigurieren!
Für die Unterlagen: die [offizielle Dokumentation] (http://docs.spring.io/spring-boot/docs/current-SNAPSHOT/reference/htmlsingle/#howto-logging), wie für Spring Boot v1.2.0.RELEASE und Spring v4.1.3.RELEASE:
Wenn Sie mehr Details einstellen möchten, fügen Sie bitte eine Log-Konfigurationsdatei mit dem Namen "logback.xml" hinzu; oder "logback-spring.xml".
in Ihre Datei application.properties ein, Eingabe wie folgt:
in der loback-spring.xml, Eingabe wie folgt:
Vorhandene Antworten sind großartig. Ich möchte Ihnen nur eine neue Spring-Boot-Funktion vorstellen, mit der Sie Protokolle gruppieren und die Protokollierungsstufe für die gesamte Gruppe festlegen können.
Beispiel aus den Docs :
Es's nette Funktion, die mehr Flexibilität bringt.
Im Falle einer Eclipse-IDE und Ihr Projekt ist maven, denken Sie daran, das Projekt zu bereinigen und zu bauen, um die Änderungen widerzuspiegeln.
im Spring-Boot-Projekt können wir logging.level.root=WARN schreiben, aber hier ist das Problem, dass wir wieder neu starten müssen, auch wenn wir devtools-Abhängigkeit hinzugefügt haben, in der Eigenschaftsdatei, wenn wir geändert werden, wird jeder Wert nicht automatisch erkannt, für diese Einschränkung habe ich die Lösung kennengelernt, d.h. wir können den Aktor in pom.xml hinzufügen und die Logger-Ebene wie unten im Postman-Client gezeigt übergeben in url bar http://localhost:8080/loggers/ROOT oder http://localhost:8080/loggers/ und im Body können Sie das json-Format wie folgt übergeben