2017-06-28 4 views
0

Ich versuche, so etwas wie die folgenden in der log4j.xmlZugriff MDC Schlüsselwert innerhalb Datei Element log4j2.xml

<File name="MyFile" fileName="logs/%X{client}]"> 
    <PatternLayout> 
     <Pattern>%d %p %c{1.} [%t] %m%n</Pattern> 
    </PatternLayout> 
</File> 

Ich habe den Schlüssel zu tun, wie aus dem Code java folgt

MDC.put("client", "Roger"); 

Ich habe versucht, $ {client} auch innerhalb der log4j2.xml nichts funktioniert. Wie verweise ich den MDC-Schlüssel innerhalb der log4j2.xml außerhalb des Layoutelements?

Ich habe auch einen Standardwert für den Schlüssel unter dem Abschnitt Eigenschaften angegeben als

<Properties> 
    <Property name="client">default</Property> 
    </Properties> 

Antwort

0

Statt der Konverter %X Muster folgt (die nur für Layouts ist), können Sie eine lookup verwenden möchten.

In diesem Fall gibt es eine integrierte Suche, die das tut, was Sie wollen: Context Map Lookup.

Beispiel Nutzung:

<File name="MyFile" fileName="logs/$${ctx:client}]"> 
+0

$$ {ctx: Client} funktioniert nicht. Es erstellt die Datei als $ {ctx – Shiva

+0

Sind Sie sicher, dass es einen Wert für den Schlüssel im Thread-Kontext für jeden Thread gibt, der die Protokollierung durchführt? –

+0

ja es tut, aber ich habe auch versucht, den Standardwert wie in der Frage in Abschnitt – Shiva

Verwandte Themen