Sobes.tech
Junior — Middle

Какви действия могат да добавят уникален идентификатор за проследяване към записите в логовете?

sobes.tech AI

Отговор от AI

За добавяне на уникален идентификатор за проследяване (trace ID) към записите в логовете в Java, могат да се използват следните подходи:

  • Използване на MDC (Mapped Diagnostic Context) от библиотеката за логване (например Log4j или SLF4J). MDC позволява да се свържат контекстуални данни (като trace ID) с текущия нишков поток, и тези данни автоматично се добавят към лог съобщенията.

  • Генериране на уникален идентификатор в началото на обработката на заявката (например UUID) и съхраняването му в MDC.

  • Настройка на шаблона за логване така, че да показва trace ID от MDC във всяко лог съобщение.

Пример с SLF4J и 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("Започване на обработката на заявката");

        // ... логика за обработка

        logger.info("Завършване на обработката на заявката");

        MDC.clear();
    }
}

В конфигурацията на логера трябва да се добави %X{traceId} в шаблона за изход, за да се показва trace ID в логовете.