In modernen, cloud-nativen und kontinuierlichen Umgebungen, wie Kubernetes, ist es üblich, Log-Nachrichten auf die Standardausgabe (stdout) zu schreiben, anstatt sie in Dateien zu speichern oder direkt an Log-Aggregatoren zu senden. Dieser Ansatz passt gut zu den Prinzipien der Zwölf-Faktor-App, insbesondere dem Log-Management, und vereinfacht die Log-Erfassung und -Analyse in verteilten Systemen.
Spring Boot bietet umfangreiche Unterstützung für Logging und lässt sich leicht so konfigurieren, dass Logs auf die Standardausgabe geschrieben werden. Spring Boot verwendet standardmäßig Logback oder Log4j2 als Logging-Framework, die beide flexibel konfigurierbar sind.
Um in einer Spring Boot-Anwendung die Logging-Ausgabe auf die
Standardausgabe zu lenken, kann die application.properties
oder application.yml Konfigurationsdatei verwendet
werden:
logging.level.root=INFO
logging.file.name= # Setzt das Logging-Ziel auf Standardausgabe, indem kein Dateiname angegeben wird
Für eine feinere Kontrolle und um beispielsweise gleichzeitig in
Dateien und auf die Standardausgabe zu loggen oder verschiedene
Log-Formate zu definieren, kann eine spezifischere Logback-Konfiguration
in einer logback-spring.xml Datei vorgenommen werden.
<configuration>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>%d{yyyy-MM-dd HH:mm:ss} - %msg%n</pattern>
</encoder>
</appender>
<root level="info">
<appender-ref ref="STDOUT"/>
</root>
</configuration>Dieses Beispiel konfiguriert Logback so, dass alle Log-Nachrichten mit dem Level INFO oder höher auf die Standardausgabe mit einem einfachen Format geschrieben werden.
Das Logging auf die Standardausgabe ist in containerisierten und orchestrierten Umgebungen wie Kubernetes der bevorzugte Ansatz, da es die Log-Verwaltung vereinfacht und für eine nahtlose Integration mit modernen Log-Aggregations- und Monitoring-Tools sorgt. Spring Boot unterstützt diesen Ansatz nativ und bietet flexible Konfigurationsmöglichkeiten, um den spezifischen Anforderungen einer Anwendung gerecht zu werden.