Zum Inhalt springen
_CORE
KI & Agentensysteme Unternehmensinformationssysteme Cloud & Platform Engineering Datenplattform & Integration Sicherheit & Compliance QA, Testing & Observability IoT, Automatisierung & Robotik Mobile & Digitale Produkte Banken & Finanzen Versicherungen Öffentliche Verwaltung Verteidigung & Sicherheit Gesundheitswesen Energie & Versorgung Telko & Medien Industrie & Fertigung Logistik & E-Commerce Retail & Treueprogramme
Referenzen Technologien Blog Know-how Tools
Über uns Zusammenarbeit Karriere
CS EN DE
Lassen Sie uns sprechen

Logging in Java-Anwendungen — Best Practices

25. 06. 2013 Aktualisiert: 24. 03. 2026 1 Min. Lesezeit CORE SYSTEMSdevelopment
Dieser Artikel wurde veröffentlicht im Jahr 2013. Einige Informationen können veraltet sein.
Logging in Java-Anwendungen — Best Practices

Korrekt konfiguriertes Logging ist der Unterschied zwischen einer Stunde Debugging und einer Fünf-Minuten-Diagnose. Schlechtes Logging ist entweder zu viel (Tausende Zeilen pro Sekunde, die niemand liest) oder zu wenig (ERROR — sonst nichts).

SLF4J als Fassade

SLF4J (Simple Logging Facade for Java) entkoppelt Ihren Code von der konkreten Logging-Implementierung. In der Produktion verwenden Sie Log4j, in Tests Logback — der Code ändert sich nicht. Loggen Sie immer über SLF4J, niemals direkt über die Log4j-API.

Log-Level — die Regeln

ERROR: etwas ist fehlgeschlagen und erfordert Eingreifen (Datenbank nicht erreichbar, externer Dienst antwortet nicht). WARN: etwas ist verdächtig, aber die Anwendung läuft weiter (veraltete API, Limit wird erreicht). INFO: bedeutende Business-Ereignisse (Benutzer angemeldet, Bestellung erstellt). DEBUG: Details für Entwickler (SQL-Abfragen, HTTP-Header). In der Produktion: INFO und höher; in der Entwicklung: DEBUG.

MDC — Mapped Diagnostic Context

Jede Log-Zeile sollte enthalten: Zeitstempel, Thread, Level, Logger, Nachricht — und auch Benutzername, Session-ID, Request-ID. MDC löst das: Zu Beginn eines Requests wird die userId in den MDC eingefügt, und jede Log-Zeile enthält sie automatisch. Unschätzbar bei der Diagnose von Problemen eines bestimmten Benutzers.

Rotation und Aufbewahrung

DailyRollingFileAppender: neue Datei jeden Tag. 30 Tage Aufbewahrung. Maximale Größe von 100 MB pro Datei (RollingFileAppender). Komprimierung alter Logs (gzip). In der Produktion NIEMALS nach stdout loggen — verwenden Sie FileAppender.

Zentrale Erfassung

Bei 20 Servern ist das Lesen von Logs auf jedem Server einzeln unpraktisch. Rsyslog/syslog-ng für die zentrale Erfassung auf einem Log-Server. Wir suchen eine Lösung für die Volltextsuche in Logs — derzeit grep, aber das skaliert nicht.

Regeln

  1. SLF4J-Fassade. 2. Korrekte Log-Level. 3. MDC für Kontext. 4. Rotation und Aufbewahrung. 5. Loggen Sie was, nicht wie (das Ergebnis einer Operation, nicht jede Codezeile).
log4jslf4jloggingjava
Teilen:

CORE SYSTEMS

Wir bauen Kernsysteme und KI-Agenten, die den Betrieb am Laufen halten. 15 Jahre Erfahrung mit Enterprise-IT.

Brauchen Sie Hilfe bei der Implementierung?

Unsere Experten helfen Ihnen bei Design, Implementierung und Betrieb. Von der Architektur bis zur Produktion.

Kontaktieren Sie uns
Brauchen Sie Hilfe bei der Implementierung? Termin vereinbaren