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.