MDC signifie Mapped Diagnostic Context. Le contexte de diagnostic mappé a enrichi les journaux en fournissant plus d’informations sur l’événement dans les journaux. Par défaut, Mule enregistre deux entrées : le processeur qui affiche l’emplacement des événements en cours, les événements qui indiquent l’ID de corrélation de l’événement.
Mule Runtime 4.4 a introduit le module de traçage et vous permet d’ajouter plus d’informations aux journaux en ajoutant, en supprimant et en supprimant des variables du contexte de journalisation pour un événement Mule donné.
Conditions préalables
Il y a 2 conditions préalables principales pour utiliser la journalisation MDC
- Ajouter un module de traçage à votre projet Mule
- Changer la disposition du modèle en MDC dans log4j2.xml
<PatternLayout pattern="%-5p %d [%t] [%MDC] %c: %m%n"/>
Modifier la disposition du modèle dans log4j2.xml
Ouvrez log4j2.xml situé à la src/main/ressources de votre projet.
Remplacer [processor: %X{processorPath}; event: %X{correlationId}] avec [%MDC] pour la disposition des motifs.
<Appenders>
<RollingFile name="file" fileName="${sys:mule.home}${sys:file.separator}logs${sys:file.separator}mdc-logging-example.log"
filePattern="${sys:mule.home}${sys:file.separator}logs${sys:file.separator}mdc-logging-example-%i.log">
<PatternLayout pattern="%-5p %d [%t] [%MDC] %c: %m%n"/>
<SizeBasedTriggeringPolicy size="10 MB"/>
<DefaultRolloverStrategy max="10"/>
</RollingFile>
</Appenders>
Configurer les variables de journalisation définies
- Pour définir les variables de journalisation, vous devez d’abord installer le module de traçage dans Anypoint Studio.
- Faites glisser et déposez les variables de journalisation dans votre application mule.
- Définissez le nom et la valeur de la variable. Il peut s’agir de n’importe quel identifiant, de paramètres de requête, d’en-têtes ou de toute autre information qui vous aide à rechercher ou à regrouper des événements liés.
Dans la configuration xml, la variable de journalisation définie ressemblera à celle illustrée ci-dessous
<tracing:set-logging-variable doc:name="Set logging variable"
doc:id="64dabc52-4712-4789-9dc9-f84b5827c86e" variableName="uuid"
value="#[attributes.queryParams.uuid]"/>
Après l’exécution du flux, les journaux de sortie sont :
INFO 2021-10-28 20:28:11,395 [[MuleRuntime].uber.28: [mule-logging-application].mule-logging-applicationFlow.CPU_LITE @3ae64de5] [{correlationId=20211028202811, uuid=1234, processorPath=mule-logging-applicationFlow/processors/2}] org.mule.runtime.core.internal.processor.LoggerMessageProcessor: Start Transaction
Exemple
<?xml version="1.0" encoding="UTF-8"?>
<mule xmlns:tracing="http://www.mulesoft.org/schema/mule/tracing" xmlns:http="http://www.mulesoft.org/schema/mule/http"
xmlns="http://www.mulesoft.org/schema/mule/core"
xmlns:doc="http://www.mulesoft.org/schema/mule/documentation" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.mulesoft.org/schema/mule/core http://www.mulesoft.org/schema/mule/core/current/mule.xsd
http://www.mulesoft.org/schema/mule/http http://www.mulesoft.org/schema/mule/http/current/mule-http.xsd
http://www.mulesoft.org/schema/mule/tracing http://www.mulesoft.org/schema/mule/tracing/current/mule-tracing.xsd">
<http:listener-config name="HTTP_Listener_config" doc:name="HTTP Listener config" doc:id="7a1a2ee2-bac5-47f8-a528-002f07839486" >
<http:listener-connection host="0.0.0.0" port="8081" />
</http:listener-config>
<configuration doc:name="Configuration" doc:id="4bcc6cce-e71d-463a-ac41-71b9c67ecf81" correlationIdGeneratorExpression='#[now() as String{format:"yyyyMMddHHmmss"}]' />
<flow name="mdc-logging-exampleFlow" doc:id="b875539a-9276-4302-822c-b871c01c850b" >
<http:listener doc:name="Listener" doc:id="f7b5cd1d-4f14-44ca-887a-9c7ca9837dbb" config-ref="HTTP_Listener_config" path="/test"/>
<tracing:set-logging-variable doc:name="Set logging variable" doc:id="64dabc52-4712-4789-9dc9-f84b5827c86e" variableName="uuid" value="#[attributes.queryParams.uuid]"/>
<tracing:set-logging-variable doc:name="Set logging variable" doc:id="4afdf594-b217-4063-8e1e-023dffdc0a18" variableName="Test" value="1234343"/>
<logger level="INFO" doc:name="Logger" doc:id="a9dc5218-e5cf-4913-8dbb-23999a90400e" message="#['Start of the flow']"/>
<logger level="INFO" doc:name="Logger" doc:id="655909d8-7133-42db-a49a-ff7130a6d8b7" message="#[payload]"/>
</flow>
</mule>
Regardez cette vidéo montrant comment configurer la journalisation MDC dans votre application Mule.
Maintenant, vous savez comment configurer la journalisation MDC pour votre application Mule.