Sobes.tech
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 გამოჩნდეს ლოგებში.