2017-05-16 4 views
0

Ich habe diese log4j2.xml Datei:Wie UUID Log4j für die Anmeldung in Datei hinzufügen?

<?xml version="1.0" encoding="UTF-8"?> 
<Configuration xmlns="http://logging.apache.org/log4j/2.0/config"> 
<Appenders> 
    <File name="FILE" fileName="logfile.log" append="true"> 
     <PatternLayout pattern="%p | [%t] %l | message : %m%n"/> 
    </File> 
    <Console name="STDOUT" target="SYSTEM_OUT"> 
     <PatternLayout pattern="%p | [%t] %l | message : %m%n"/> 
    </Console> 
</Appenders> 
</Configuration> 

Und mein Ziel ist es in der RestEndpoint eine eindeutige ID mit UUID hinzufügen, aber ich weiß nicht, wie man die XML-Datei hinzufügen ... oder ich muss Konfigurieren Sie es nicht in einer XML-Datei?

+0

Lesen Sie mehr über MDC in Log4j – Jens

+0

Sie mögen dieses . Siehe hierzu [link] (http://www.codejava.net/coding/how-to-configure-log4j-as-logging-mechanism-in-java) –

Antwort

1

in Ihrer Anwendung setzen die UUID in der ThreadContext:

ThreadContext.put("myUuid", new UUID()); 

Ich nehme an, Sie wissen, wo die Eintrittspunkte in der Anwendung sind, wenn diese setzen und zu entfernen.

In der Konfiguration, extrahieren Sie die UUID aus dem ThreadContext mit dem %X Musterumwandler: (auch Loggers zu Ihrer Konfiguration hinzugefügt)

<?xml version="1.0" encoding="UTF-8"?> 
<Configuration status="warn"> 
<Appenders> 
    <File name="FILE" fileName="logfile.log" append="true"> 
     <PatternLayout pattern="%p | [%t] %l | id: %X{myUuid} | message : %m%n"/> 
    </File> 
    <Console name="STDOUT" target="SYSTEM_OUT"> 
     <PatternLayout pattern="%p | [%t] %l | id: %X{myUuid} | message : %m%n"/> 
    </Console> 
</Appenders> 

<Loggers> 
    <Root level ="trace"> 
    <AppenderRef ref="STDOUT" /> 
    <AppenderRef ref="FILE" /> 
    </Root> 
</Loggers> 
</Configuration> 
0

Fühlen Sie sich wie es eine andere Lösung, das ist einfacher, wenn das, was Sie brauchen nur eine eindeutige ID für jeden Protokolleintrag. Überprüfen UUID in Log4j doc
Die einzige Aktualisierung ist, das Layout in XML-Datei zu ändern ist %u{"RANDOM"} hinzuzufügen.

XML-Beispielkonfiguration

<PatternLayout> 
    <pattern>%d{DATE} [%p] UUID:%u{"RANDOM"} (%t) %c: %m%n</pattern> 
</PatternLayout>