[JAVA] Ich möchte eine TraceId in das Protokoll einbetten

Zusammenfassung dieses Artikels

――In der Stapelverarbeitung möchten Sie sofort suchen, woher dasselbe Verarbeitungsprotokoll stammt, wenn eine Parallelverarbeitung oder eine kontinuierliche Verarbeitung durchgeführt wird. -Schreiben Sie unter der Annahme, dass @ Slf4j verwendet wird

Sofortige Montagemethode

logback.xml


<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE logback>
<configuration>
    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
        <encoder>
            <pattern>traceID: [%X{traceId}] message: %msg%n</pattern>
        </encoder>
    </appender>

    <root>
        <appender-ref ref="STDOUT" />
    </root>
</configuration>
import java.util.UUID;
import lombok.extern.slf4j.Slf4j;
import org.slf4j.MDC;

@Slf4j
public class Traceid {
    public static void main(String[] args) {
        log.info("dummy1");

        String uuid = UUID.randomUUID().toString();
        MDC.put("traceId", uuid.substring(0, uuid.indexOf("-")));
        log.info("dummy2");
        MDC.remove("traceId");

        log.info("dummy3");
    }
}

Konsolenprotokoll


traceID: [] message: dummy1
traceID: [4f9c9243] message: dummy2
traceID: [] message: dummy3

Andere

Da MDC.put eine statische Methode ist, können Sie denselben Wert verwenden, wenn Sie ihn in mehreren Threads verwenden. → Da MDC die Map speichert, in der der Schlüssel in ThreadLocal gespeichert ist, müssen Sie sich keine Gedanken darüber machen, ob zwischen Threads derselbe Wert verwendet wird!

Recommended Posts

Ich möchte eine TraceId in das Protokoll einbetten
Ich möchte den Wert in Ruby erhalten
Ich möchte die Protokollausgabe unter Android vereinfachen
Ich möchte die Protokollausgabeeinstellung von UtilLoggingJdbcLogger ändern
Ich möchte im gespeicherten Zustand zum selben Bildschirm wechseln
Ich möchte die if-else-Anweisung für bedingte Verzweigungen in Java vereinfachen
Ich möchte das in der Datenbank gespeicherte Protokoll morphologisch analysieren und in der Datenbank speichern, um Nachrichten 1 zu klassifizieren
Ich möchte RadioButtons an derselben Stelle auf dem Bildschirm in derselben RadioGroup platzieren
Ich möchte den oberen Rand in der UITableView von Grouped entfernen (schnell)
[Java] Ich möchte mit dem Schlüssel im Objekt eindeutig arbeiten
Ich möchte @Autowired in Servlet verwenden
Ich möchte den Wert von Attribute in Selenium of Ruby ändern
[Android] Ich möchte den Listener über die Schaltfläche in ListView abrufen
[Ruby] Ich möchte nur das ungerade Zeichen in der Zeichenfolge ausgeben
Ich möchte JSP in Emacs einfacher als die Standardeinstellung schreiben.
Ich möchte die IP-Adresse erhalten, wenn ich mit Java eine Verbindung zu Wi-Fi herstelle
Ich möchte bei der Registrierung in der Datenbank eine Fehlermeldung anzeigen
Ich möchte eine E-Mail in Java senden.
Ich habe versucht, die Sitzung in Rails zu organisieren
Ich möchte den Inhalt der Absicht var_dump
Ich möchte APP_HOME an Logback in Gradle übergeben
rsync4j - Ich möchte rsync in Java berühren.
Ich möchte irgendwann sogar in Kotlin sein
Ich möchte nach dem Dezimalpunkt abschneiden
Ich möchte Combine auch in UIKit verwenden.
Ich möchte die praktischen Funktionen von Clojure in Kotlin nutzen
[Java] Ich möchte die Differenz zum Datum berechnen
Tokoro habe ich in der Migration von Wicket 7 auf 8 umgeschrieben
Ich möchte auch in Laradock Fischschalen verwenden! !!
Ich möchte ES2015 auch in Java verwenden! → (´ ・ ω ・ `)
Ich möchte den Bereich anhand des monatlichen Abschlusses beurteilen
Ich möchte ein kleines Symbol in Rails verwenden
Ich möchte die Antwort der Janken-App wissen
Ich möchte den Namen des Posters des Kommentars anzeigen
Ich möchte den Dunkelmodus mit der SWT-App verwenden
Ich möchte eine Funktion in der Rails Console definieren
Ich möchte Schlangenfälle mit Tabellendefinitionen stoppen
Ich möchte die Hauptmethode mit Reflektion aufrufen
Ich möchte in RSpec auf einen GoogleMap-Pin klicken
[Grober Kommentar] Ich möchte die Zupfmethode heiraten
Ich habe versucht, die Methode der gegenseitigen Teilung von Eugrid in Java zu implementieren
Ich möchte die Bildlaufposition von UITableView zurückgeben!
Ich möchte der Kommentarfunktion eine Löschfunktion hinzufügen
Ich möchte nur das Neueste sehen, da das Docker-Protokoll zu groß geworden ist
Ich möchte den Pfad nach der neuen Registrierung ändern, nachdem ich mich mit mehreren Geräten angemeldet habe.
[Active Admin] Ich möchte den Umfang der Sammlung angeben, die in select_box angezeigt werden soll
[Android Studio] Ich möchte Einschränkungen für die in EditText [Java] registrierten Werte festlegen.
[Rails] Ich möchte das Linkziel von link_to auf einer separaten Registerkarte anzeigen
# 1_JAVA Ich möchte die Indexnummer durch Angabe eines Zeichens in der Zeichenfolge erhalten
Ich möchte Zeichen konvertieren ...
[Anfänger] Ich möchte die Migrationsdatei ändern.
Ich möchte einen relativen Pfad in einer Situation finden, in der Pfad verwendet wird