Sobes.tech
Junior — Middle

Quali azioni possono essere intraprese per aggiungere un identificatore di tracciamento univoco nelle registrazioni di log?

sobes.tech AI

Risposta dell'AI

Per aggiungere un identificatore di traccia unico (trace ID) nelle registrazioni di log in Java, è possibile utilizzare i seguenti approcci:

  • Utilizzo di MDC (Mapped Diagnostic Context) dalla libreria di logging (ad esempio, Log4j o SLF4J). MDC consente di associare dati contestuali (come il trace ID) al thread corrente, e questi dati vengono aggiunti automaticamente ai messaggi di log.

  • Generazione di un identificatore unico all'inizio dell'elaborazione della richiesta (ad esempio, UUID) e salvataggio in MDC.

  • Configurazione del modello di log per mostrare il trace ID da MDC in ogni record di log.

Esempio con SLF4J e 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("Inizio elaborazione richiesta");

        // ... logica di elaborazione

        logger.info("Fine elaborazione richiesta");

        MDC.clear();
    }
}

Nel file di configurazione del logger, si dovrebbe aggiungere %X{traceId} nel pattern di output affinché il trace ID venga visualizzato nei log.