Logging und Tracing mit Kontextinformation für Java-Entwickler

Seite 4: Fazit

Inhaltsverzeichnis

Um Log-Einträge mit zusätzlichen Informationen anzureichern, beginnen Entwickler normalerweise mit einem Filter, der Informationen wie den Nutzernamen oder die aufgerufene URL in den MDC schreibt: Als querschnittliche Implementierung erweitert er alle Log-Einträge und benötigt keine zusätzlichen Bibliotheken im Projekt. Das funktioniert sowohl mit log4j in den Versionen 1 und 2 als auch gegebenenfalls mit anderen Logging-Implementierungen wie Logback.

In einer Architektur, in der ein Service einen anderen aufruft, ist das Umsetzen des Dapper-Konzepts naheliegend. Hierfür sind jedoch zusätzliche Bibliotheken notwendig. So werden die Log-Einträge um Trace-Informationen ergänzt, auch wenn zunächst kein Zipkin-Server zum Einsatz kommt, um sie zusammenzuführen. Ist Dapper implementiert, lassen sich Fehlermeldungen für Nutzer um Trace-IDs ergänzen. Das erleichtert die Fehlersuche in den Logs. Anschließend (und wenn ein Update auf log4j 2.7 oder neuer möglich ist) lässt sich das Per-Request-Debugging angehen.

Alle beschriebenen Maßnahmen helfen, mit den vorhandenen Logs schneller zu den Problemen vorstoßen zu können. Denn das nächste Ticket ist nicht weit.

Alexander Schwartz
arbeitet als Principal IT Consultant bei msg systems ag. Im Laufe der Zeit arbeitete er mit verschiedensten Server- und Web-Techniken. Er schätzt produktive Arbeitsumgebungen, agile Projekte und automatisierte Tests. Auf Konferenzen und bei User Groups spricht er über seine Erfahrungen.
(jul)