Sobes.tech
Junior — Middle

Aké akcie môžu pridať jedinečný identifikátor sledovania do záznamov v denníku?

sobes.tech AI

Odpoveď od AI

Za dodanie unikatného identifikátora sledovania (trace ID) do záznamov logov v Jave je možné použiť nasledujúce prístupy:

  • Použitie MDC (Mapped Diagnostic Context) z knižnice na logovanie (napríklad Log4j alebo SLF4J). MDC umožňuje pripojiť kontextové údaje (napríklad trace ID) k aktuálnemu vláknu, a tieto údaje sa automaticky pridávajú do logovacích správ.

  • Generovanie jedinečného identifikátora na začiatku spracovania požiadavky (napríklad UUID) a jeho uloženie do MDC.

  • Konfigurácia vzoru logovania tak, aby zobrazoval trace ID z MDC v každom zázname.

Príklad s použitím SLF4J a 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("Začiatok spracovania požiadavky");

        // ... logika spracovania

        logger.info("Koniec spracovania požiadavky");

        MDC.clear();
    }
}

V konfigurácii loggera je potrebné pridať %X{traceId} do vzoru výstupu, aby sa trace ID zobrazovalo v logoch.