Какви действия могат да добавят уникален идентификатор за проследяване към записите в логовете?
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 в логовете.