Sobes.tech
Junior — Middle

Milyen műveletekkel lehet hozzáadni egy egyedi nyomkövetési azonosítót a naplóbejegyzésekhez?

sobes.tech MI

Válasz az MI-től

Az egyedi nyomon követési azonosító (trace ID) hozzáadásához a Java naplókhoz a következő megközelítéseket lehet alkalmazni:

  • A MDC (Mapped Diagnostic Context) használata a naplózó könyvtárból (például Log4j vagy SLF4J). A MDC lehetővé teszi, hogy kontextuális adatokat (például trace ID) kötözzünk az aktuális szálhoz, és ezek az adatok automatikusan hozzáadódnak a naplóüzenetekhez.

  • Egyedi azonosító generálása a kérés feldolgozásának kezdetén (például UUID) és tárolása a MDC-ben.

  • A naplózási sablon konfigurálása úgy, hogy a trace ID-t a MDC-ből jelenítse meg minden naplóbejegyzésnél.

Példa SLF4J és Logback használatával:

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("A kérés feldolgozása megkezdődött");

        // ... feldolgozási logika

        logger.info("A kérés feldolgozása befejeződött");

        MDC.clear();
    }
}

A napló konfigurációjában hozzá kell adni a %X{traceId} mintát a kimeneti mintához, hogy a trace ID megjelenjen a naplókban.