Sobes.tech
Назад к вопросам
Junior — Middle
73

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

Компании, где спрашивали
Альфа-БанкАльфа-Банк

Ответ от нейросети

sobes.tech 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} в шаблон вывода, чтобы traceId отображался в логах.