Sobes.tech
Junior — Middle

Ce acțiuni pot adăuga un identificator unic de urmărire în înregistrările jurnalelor?

sobes.tech AI

Răspuns de la AI

Pentru a adăuga un identificator unic de urmărire (trace ID) în înregistrările de jurnal în Java, se pot utiliza următoarele abordări:

  • Utilizarea MDC (Mapped Diagnostic Context) din biblioteca de jurnalizare (de exemplu, Log4j sau SLF4J). MDC permite asocierea datelor contextuale (cum ar fi trace ID) cu firul de execuție curent, iar aceste date sunt adăugate automat în mesajele de jurnal.

  • Generarea unui identificator unic la începutul procesării solicitării (de exemplu, UUID) și stocarea acestuia în MDC.

  • Configurarea șablonului de jurnalizare pentru a afișa trace ID din MDC în fiecare înregistrare de jurnal.

Exemplu cu SLF4J și 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("Începem procesarea solicitării");

        // ... logica de procesare

        logger.info("Încheiem procesarea solicitării");

        MDC.clear();
    }
}

În configurația logger-ului, trebuie adăugat %X{traceId} în șablonul de ieșire pentru ca trace ID-ul să fie afișat în jurnale.