Dies ist eine sehr einfache Frage, aber ich kann keine Informationen finden.
(Vielleicht fehlt mein Wissen über Java-Frameworks stark)
Wie kann ich die Protokollierungsstufe mit application.properties festlegen?
Und Speicherort der Protokolldatei usw.?
logging
spring-boot
zeodtr
quelle
quelle
Settings
-> auf den gewünschten PegelConfig Vars
einstellenlogging.level.com.yourpackage
(INFO, ERROR, DEBUG).Antworten:
Update: Ab Spring Boot v1.2.0.RELEASE gelten die Einstellungen in
application.properties
oderapplication.yml
gelten. Weitere Informationen finden Sie im Abschnitt Protokollebenen des Referenzhandbuchs.Für frühere Versionen von Spring Boot ist dies nicht möglich. Dazu müssen Sie lediglich die normale Konfiguration für Ihr Protokollierungsframework (log4j, logback) verwenden. Fügen Sie die entsprechende Konfigurationsdatei (
log4j.xml
oderlogback.xml
) zumsrc/main/resources
Verzeichnis hinzu und konfigurieren Sie sie nach Ihren Wünschen.Sie können die Debug-Protokollierung aktivieren, indem Sie
--debug
beim Starten der Anwendung über die Befehlszeile angeben.Frühlings - Boot bietet auch einen schönen Ausgangspunkt für logback einige Standardeinstellungen zu konfigurieren, Färben usw. der base.xml - Datei , die Sie einfach in Ihre logback.xml Datei enthalten kann. (Dies wird auch aus der Standarddatei logback.xml in Spring Boot empfohlen .
quelle
application.properties
oderapplication.yml
gelten, wie von Richard beantwortet (modulo das:
oder=
Problem --- der Doppelpunkt scheint für mich zu funktionieren).Sie können dies mit Ihren application.properties tun.
logging.level.=ERROR
-> Setzt die Root - Protokollebene auf Fehler...
logging.level.=DEBUG
-> Setzt die Root - Protokollebene auf DEBUGlogging.file=${java.io.tmpdir}/myapp.log
-> Setzt der absolute Protokolldateipfad zu TMPDIR / myapp.logEines vernünftigen Standardsatz von application.properties über Logging - Profile wäre: application.properties:
application-dev.properties:
Wenn Sie in Ihrer bevorzugten IDE entwickeln, fügen Sie
-Dspring.profiles.active=dev
der Run / Debug-Konfiguration Ihrer App einfach ein Argument als VM hinzu.Dadurch erhalten Sie nur Fehler beim Anmelden in der Produktion und beim Debuggen der Protokollierung während der Entwicklung, OHNE die Ausgabe in eine Protokolldatei zu schreiben. Dies verbessert die Leistung während der Entwicklung (und spart SSD-Laufwerke einige Betriebsstunden;)).
quelle
logging.level.:DEBUG
spring-boot 1.4.0
:logging.level.=DEBUG
führt dazu, dass die Anwendung nicht gestartet werden kann und ein Fehler auftritt:java.lang.ClassCircularityError: java/util/logging/LogRecord
logging.level.
handelt sich nur um eine syntaktische Abkürzung fürlogging.level.root
die Bequemlichkeit , die bevorzugt werden könnte als (1) weniger anfällig für Verwechslungen mit Tippfehlern, (2) möglicherweise expliziter und (3) Arbeiten mit dem=
Zuweisungszeichen, das insgesamt mehr Konsistenz bietet zur Konfigurationsdatei.Die richtige Methode zum Festlegen der Root- Protokollierungsstufe ist die Verwendung der Eigenschaft
logging.level.root
. Siehe Dokumentation , die aktualisiert wurde, seit diese Frage ursprünglich gestellt wurde.Beispiel:
quelle
Angenommen, Ihre Anwendung hat den Paketnamen als
com.company.myproject
. Anschließend können Sie die Protokollierungsstufe für Klassen in Ihrem Projekt wie unten in den Dateien application.properties angegeben festlegenlogging.level.org.springframework.web = DEBUG
undlogging.level.org.hibernate = DEBUG
legt die Protokollierungsstufe nur für Klassen von Spring Framework Web und Hibernate fest.Verwenden Sie zum Festlegen des Speicherorts der Protokolldatei
quelle
Wenn Sie Spring Boot verwenden, können Sie die folgenden Eigenschaften direkt in die Datei application.properties einfügen, um die Protokollierungsstufe festzulegen, das Protokollierungsmuster anzupassen und Protokolle in der externen Datei zu speichern.
Dies sind verschiedene Protokollierungsstufen und deren Reihenfolge von Minimum << Maximum.
OFF << FATAL << ERROR << WARN << INFO << DEBUG << TRACE << ALL
Bitte gehen Sie über diesen Link, um Ihr Protokoll lebendiger anzupassen.
https://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-logging.html
quelle
Stellen Sie sicher, dass der Tipp von Dave Syer etwas Liebe findet, da das Hinzufügen
debug=true
zu application.properties tatsächlich die Debug-Protokollierung ermöglicht.quelle
Wenn Sie ein anderes Protokollierungsframework verwenden möchten, z. B. log4j, ist es für mich am einfachsten, die eigene Protokollierung von Spring Boots zu deaktivieren und Ihre eigene zu implementieren. Auf diese Weise kann ich jede Google-Ebene in einer Datei konfigurieren, nämlich log4j.xml (in meinem Fall).
Um dies zu erreichen, müssen Sie einfach diese Zeilen zu Ihrer pom.xml hinzufügen:
Sie haben wahrscheinlich 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 können Sie die Protokollierung für den Start in Ihrer log4j-Konfigurationsdatei konfigurieren!
quelle
log4j.properties
.Sie können versuchen, die Protokollstufe auf DEBUG zu setzen. Beim Starten der Anwendung wird alles angezeigt
quelle
Für die Aufzeichnungen: die offizielle Dokumentation , wie für Spring Boot v1.2.0.RELEASE und Spring v4.1.3.RELEASE:
quelle
Wenn Sie weitere Details festlegen möchten, fügen Sie bitte einen Protokollkonfigurationsdateinamen "logback.xml" oder "logback-spring.xml" hinzu.
Geben Sie in Ihrer Datei application.properties Folgendes ein:
Geben Sie in der Datei loback-spring.xml Folgendes ein:
quelle
Bestehende 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 Dokumenten:
Es ist eine nette Funktion, die mehr Flexibilität bringt.
quelle
In meiner aktuellen Konfiguration habe ich es in application.yaml so definiert :
Ich benutze Spring-Boot: 2.2.0.RELEASE. Sie können jedes Paket definieren, das die TRACE-Ebene so haben soll.
quelle
Im Spring Boot-Projekt können wir logging.level.root = WARN schreiben, aber hier ist das Problem, wir müssen neu starten, auch wenn wir die devtools-Abhängigkeit hinzugefügt haben. In der Eigenschaftendatei, wenn wir geändert werden, wird kein Wert automatisch erkannt, für diese Einschränkung habe ich erfahren Als Lösung können wir den Aktor in pom.xml hinzufügen und die Logger-Ebene wie unten im Postman-Client in der URL-Leiste http: // localhost: 8080 / loggers / ROOT oder http: // localhost: 8080 / loggers / com gezeigt übergeben .mycompany und im Körper können Sie das json-Format wie unten übergeben
quelle
Denken Sie im Falle einer Eclipse-IDE und Ihres Projekts daran, das Projekt zu bereinigen und zu erstellen, um die Änderungen widerzuspiegeln.
quelle
Mit Springboot 2 können Sie die Root-Protokollierungsstufe mit einer Umgebungsvariablen wie der folgenden festlegen:
Oder Sie können eine bestimmte Protokollierung für Pakete wie folgt festlegen:
quelle
LOGGING_LEVEL_ROOT=DEBUG
, unter Verwendung der