Назад к вопросам
Альфа-Банк
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 отображался в логах.