So deaktivieren Sie die Konsolenprotokollierung im Spring Boot

1. Übersicht

In der Regel bieten uns Konsolenprotokolle die Möglichkeit, unser System auf einfache und intuitive Weise zu debuggen. Es gibt jedoch Fälle, in denen wir diese Funktion in unserem System nicht aktivieren möchten.

In diesem kurzen Tutorial erfahren Sie, wie Sie vermeiden, sich beim Ausführen einer Spring Boot-Anwendung an der Konsole anzumelden .

Wir werden es einfach halten und anhand von Beispielen auf den Punkt bringen, wie dies erreicht werden kann, unabhängig davon, ob wir Logback, Log4js2 oder sogar das Java Util Logging-Framework verwenden.

Weitere Informationen zu Protokollierungsframeworks für Spring Boot finden Sie in unserem Tutorial zum Protokollieren in Spring Boot.

2. Deaktivieren der Konsolenausgabe für die Rückmeldung

Wenn in unserem Projekt Spring Boot-Starter verwendet werden, wird auch die Spring-Boot-Starter-Protokollierungsabhängigkeit berücksichtigt.

Dieser spezielle Starter konfiguriert Logback als Standardframework und protokolliert zunächst standardmäßig nur an der Konsole.

Diese Konfiguration kann angepasst werden, indem unseren Ressourcen eine logback-spring.xml- Datei hinzugefügt wird .

Richten Sie beispielsweise das XML so ein, dass die Konsolenausgabe deaktiviert und nur in einer Datei protokolliert wird:

Darüber hinaus benötigen wir die Konfigurationseigenschaft logging.file in unserer Datei application.properties :

logging.file=baeldung-disabled-console.log

Hinweis: Was die Konsolenausgabe hier tatsächlich deaktiviert, ist die Tatsache, dass wir die Datei console-appender.xml nicht in unser XML aufnehmenDatei, also würde ein leeres Konfigurations- Tag auch den Trick tun.

Alternativ können wir das Erstellen des XML vermeidenDatei durch Überschreiben der Standardkonfiguration mit Anwendungseigenschaften .

Beispielsweise können wir möglicherweise die Eigenschaft logging.pattern.console verwenden :

logging.pattern.console=

Diese Eigenschaft wird in die Systemeigenschaft CONSOLE_LOG_PATTERN übersetzt , die dann von der Spring-Standardkonsolenkonfiguration verwendet wird.

Dieser Ansatz ist natürlich nicht so sauber und solide wie der vorherige . Es ist nicht der beabsichtigte Zweck der Eigenschaft, daher wird dieser "Hack" möglicherweise irgendwann nicht mehr von Logback unterstützt.

Darüber hinaus können wir alle Protokollierungsaktivitäten deaktivieren, indem Sie den Wert der Root-Protokollierungsstufe auf OFF setzen :

logging.level.root=OFF

3. So vermeiden Sie, dass Sie sich mit Log4j2 in der Konsole anmelden

Wie wir vielleicht wissen, unterstützt Log4j2 die Formate XML, JSON, YAML oder Eigenschaften, um das Protokollierungsverhalten zu konfigurieren.

Der Einfachheit halber zeigen wir diesmal nur ein einfaches Beispiel einer log4j2.xml- Datei.

Die anderen Formate berücksichtigen dieselbe Konfigurationsstruktur:

Wie beim Logback-Setup ist der Grund, warum das Framework die Protokollierung an der Konsole vermeidet, nicht die Konfiguration an sich, sondern die Tatsache, dass der Root-Logger keinen Verweis auf einen Konsolen-Appender enthält.

4. Deaktivieren der Konsolenprotokollierung für die Java Util-Protokollierung

Java Util Logging (oder einfach 'JUL') ist heutzutage möglicherweise nicht die beliebteste Protokollierungslösung für Spring Boot-Anwendungen.

Wie auch immer, wir werden analysieren, wie wir Konsolenprotokolle entfernen können, falls das Framework in unserem Projekt vorhanden ist.

Alles , was wir folgende Werte auf den Standard tun müssen , ist hinzuzufügen logging.properties in unserer Ressource - Ordner:

handlers=java.util.logging.FileHandler java.util.logging.FileHandler.pattern=baeldung.log java.util.logging.FileHandler.formatter=java.util.logging.SimpleFormatter

Und umfassen die logging.file Eigenschaft in unserer application.properties Datei. Jeder Wert reicht aus:

logging.file=true

5. Schlussfolgerung

Mit diesen kurzen Beispielen können wir jetzt Konsolenprotokolle in unserer Anwendung problemlos deaktivieren, unabhängig davon, welches Protokollierungsframework wir verwenden.

Wie immer finden wir die Implementierungen der Beispiele in unserem Github-Repository.