Sobes.tech
Junior — Middle

Quais ações podem adicionar um identificador de rastreamento único às entradas de log?

sobes.tech IA

Resposta da IA

Para adicionar um identificador de rastreamento único (trace ID) nos registos de logs em Java, pode usar as seguintes abordagens:

  • Utilização de MDC (Mapped Diagnostic Context) da biblioteca de registo (por exemplo, Log4j ou SLF4J). O MDC permite associar dados contextuais (como o trace ID) ao thread atual, e esses dados são automaticamente adicionados às mensagens de log.

  • Geração de um identificador único no início do processamento da solicitação (por exemplo, UUID) e armazenamento no MDC.

  • Configuração do padrão de registo para mostrar o trace ID a partir do MDC em cada entrada de log.

Exemplo usando 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("Início do processamento da solicitação");

        // ... lógica de processamento

        logger.info("Fim do processamento da solicitação");

        MDC.clear();
    }
}

Na configuração do logger, deve-se adicionar %X{traceId} no padrão de saída para que o traceId seja exibido nos logs.