Welche Maßnahmen können ergriffen werden, um eine eindeutige Nachverfolgungs-ID in Log-Einträgen hinzuzufügen?
sobes.tech KI
Antwort von AI
Um einen eindeutigen Trace-ID in Log-Einträgen in Java hinzuzufügen, können die folgenden Ansätze verwendet werden:
-
Verwendung von MDC (Mapped Diagnostic Context) aus der Logging-Bibliothek (z.B. Log4j oder SLF4J). MDC ermöglicht es, kontextbezogene Daten (wie Trace-ID) an den aktuellen Thread zu binden, und diese Daten werden automatisch in Log-Nachrichten eingefügt.
-
Generierung einer eindeutigen ID beim Beginn der Anfrageverarbeitung (z.B. UUID) und Speicherung in MDC.
-
Konfiguration des Log-Musters, um die Trace-ID aus MDC in jeden Log-Eintrag einzufügen.
Beispiel mit SLF4J und Logback:
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.slf4j.MDC;
import java.util.UUID;
public class Example {
private static final Logger logger = LoggerFactory.getLogger(Example.class);
public void processRequest() {
String traceId = UUID.randomUUID().toString();
MDC.put("traceId", traceId);
logger.info("Beginne die Anfrageverarbeitung");
// ... Verarbeitungslogik
logger.info("Beende die Anfrageverarbeitung");
MDC.clear();
}
}
In der Logger-Konfiguration sollte %X{traceId} im Ausgabe-Pattern hinzugefügt werden, damit die Trace-ID in den Logs angezeigt wird.