Junior — Middle
რა მოქმედებები შეიძლება ჩატარდეს ტრასირების უნიკალური იდენტიფიკატორის დამატებისთვის ლოგის ჩანაწერებში?
sobes.tech AI
პასუხი AI-სგან
Java-ში ლოგების ჩანაწერებში უნიკალური ტრასირების იდენტიფიკატორის (trace ID) დამატებისთვის, შეიძლება გამოიყენოთ შემდეგი მიდგომები:
-
MDC (Mapped Diagnostic Context) გამოყენება ლოგირების ბიბლიოთეკიდან (მაგალითად, Log4j ან SLF4J). MDC საშუალებას აძლევს კონტექსტის მონაცემების (როგორიცაა trace ID) დაკავშირებას მიმდინარე ნაკადთან, და ეს მონაცემები ავტომატურად ემატება ლოგის შეტყობინებებში.
-
მოთხოვნის დამუშავების დასაწყისში უნიკალური იდენტიფიკატორის შექმნა (მაგალითად, UUID) და შენახვა MDC-ში.
-
ლოგირების შაბლონის კონფიგურაცია ისე, რომ MDC-დან trace ID გამოჩნდეს თითოეულ ლოგში.
მაგალითად 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 გამოჩნდეს ლოგებში.