[JAVA] Je veux intégrer n'importe quel TraceId dans le journal

Résumé de cet article

―― Dans le traitement par lots, vous souhaitez rechercher immédiatement d'où provient le même journal de traitement lorsque le traitement parallèle ou le traitement continu est effectué. -Écrire en supposant que @ Slf4j est utilisé

Méthode de montage immédiate

--Dans la classe Java, enregistrez les informations que vous souhaitez afficher dans le journal à l'aide de MDC (MDC.put)

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

Journal de la console


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

Autre

Étant donné que MDC.put est une méthode statique, pourquoi ne pas utiliser la même valeur lors de son utilisation dans plusieurs threads? → Puisque la carte où MDC stocke la clé est stockée dans ThreadLocal, il n'y a pas besoin de s'inquiéter d'utiliser la même valeur entre les threads!

Recommended Posts

Je veux intégrer n'importe quel TraceId dans le journal
Je veux obtenir la valeur en Ruby
Je souhaite simplifier la sortie du journal sur Android
Je souhaite modifier le paramètre de sortie du journal de UtilLoggingJdbcLogger
Je souhaite passer au même écran dans l'état enregistré
Je souhaite simplifier l'instruction if-else de la branche conditionnelle en Java
Je souhaite analyser morphologiquement le journal stocké dans la base de données et le stocker dans la base de données pour classer les messages 1
Je veux placer RadioButtons dans le même RadioGroup à n'importe quelle position de l'écran
Je veux supprimer la marge supérieure dans UITableView de Grouped (swift)
[Java] Je veux effectuer distinctement avec la clé dans l'objet
Je veux utiliser @Autowired dans Servlet
Je veux changer la valeur de l'attribut dans Selenium of Ruby
[Android] Je souhaite obtenir l'auditeur à partir du bouton de ListView
[Ruby] Je souhaite afficher uniquement le caractère impair dans la chaîne de caractères
Je veux écrire une JSP dans Emacs plus facilement que la valeur par défaut.
Je souhaite obtenir l'adresse IP lors de la connexion au Wi-Fi avec Java
Je souhaite afficher un message d'erreur lors de l'inscription dans la base de données
Je souhaite envoyer un e-mail en Java.
J'ai essayé d'organiser la session en Rails
Je veux var_dump le contenu de l'intention
Je souhaite transmettre APP_HOME pour me connecter à Gradle
rsync4j --Je veux toucher rsync en Java.
Je veux être finalement même à kotlin
Je veux tronquer après la virgule décimale
Je souhaite également utiliser Combine dans UIKit.
Je souhaite utiliser les fonctions pratiques de Clojure dans Kotlin
[Java] Je souhaite calculer la différence par rapport à la date
Tokoro j'ai réécrit dans la migration de Wicket 7 à 8
Je veux aussi utiliser des coquillages à Laradock! !!
Je veux aussi utiliser ES2015 avec Java! → (´ ・ ω ・ `)
Je veux juger la gamme en utilisant le diplôme mensuel
Je veux utiliser une petite icône dans Rails
Je veux connaître la réponse de l'application Janken
Je souhaite afficher le nom de l'affiche du commentaire
Je souhaite utiliser le mode sombre avec l'application SWT
Je souhaite définir une fonction dans la console Rails
Je veux arrêter les cas de serpent avec des définitions de table
Je veux appeler la méthode principale en utilisant la réflexion
Je veux cliquer sur une broche GoogleMap dans RSpec
[Commentaire approximatif] Je veux épouser la méthode du pluck
J'ai essayé d'implémenter la méthode de division mutuelle d'Eugrid en Java
Je veux retourner la position de défilement de UITableView!
Je souhaite ajouter une fonction de suppression à la fonction de commentaire
Je veux voir uniquement les dernières car le journal Docker est devenu trop volumineux
Je souhaite modifier le chemin après une nouvelle inscription après m'être connecté avec plusieurs appareils.
[Active Admin] Je souhaite spécifier l'étendue de la collection à afficher dans select_box
[Android Studio] Je souhaite définir des restrictions sur les valeurs enregistrées dans EditText [Java]
[Rails] Je souhaite afficher la destination du lien de link_to dans un onglet séparé
# 1_JAVA Je veux obtenir le numéro d'index en spécifiant un caractère dans la chaîne de caractères
Je veux convertir des caractères ...
[Débutant] Je souhaite modifier le fichier de migration-Comment utiliser la restauration-
Je veux trouver un chemin relatif dans une situation où Path est utilisé