Sobes.tech
Junior — Middle

Ποιες ενέργειες μπορούν να προσθέσουν έναν μοναδικό αναγνωριστικό παρακολούθησης στις καταγραφές καταγραφής;

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();
    }
}

Στη διαμόρφωση του logger, πρέπει να προστεθεί %X{traceId} στο μοτίβο εξόδου ώστε να εμφανίζεται το trace ID στα logs.