Ποιες ενέργειες μπορούν να προσθέσουν έναν μοναδικό αναγνωριστικό παρακολούθησης στις καταγραφές καταγραφής;
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.