Junior — Middle
Kokius veiksmus galima atlikti, kad būtų pridėtas unikalus sekimo identifikatorius į žurnalo įrašus?
sobes.tech AI
Atsakymas iš AI
Norint pridėti unikalų sekimo identifikatorių (trace ID) į Java logų įrašus, galima naudoti šiuos požiūrius:
-
Naudoti MDC (Mapped Diagnostic Context) iš logavimo bibliotekos (pvz., Log4j ar SLF4J). MDC leidžia susieti kontekstinius duomenis (pvz., trace ID) su dabartiniu srautu, ir šie duomenys automatiškai pridedami prie logų žinučių.
-
Sugeneruoti unikalų identifikatorių pradžioje (pvz., UUID) ir jį išsaugoti MDC.
-
Konfigūruoti logavimo šabloną, kad MDC ištrauktų trace ID ir jį rodytų kiekviename įraše.
Pavyzdys naudojant SLF4J ir 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("Pradedame užklausos apdorojimą");
// ... apdorojimo logika
logger.info("Užklausos apdorojimas baigtas");
MDC.clear();
}
}
Logų konfigūracijoje reikia pridėti %X{traceId} į išvesties šabloną, kad trace ID būtų matomas loguose.