2017-05-16 7 views
0

私はこのlog4j2.xmlファイルがあります。ファイルにログインするためのuuidをlog4jに追加するには?

<?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> 

をそして、私の目標はRestEndpointにUUIDを持つ一意のIDを追加することですが、私はxmlファイルに追加する方法を知らない...または私がする必要がありますそれをxmlファイルに設定しないでください。アプリケーションのエントリポイントは入れてこれらを取り除くためにどこどこ

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

私はあなたが知っていると仮定:アプリケーションで

+0

注= "%このます。 Jens

+0

におけるMDCについて読む - 7Pの%のD [%のT]%のC%X - %mを%n "/>この[リンク]を参照してください(http://www.codejava.net/coding/how-to-configure-log4j-as-logging-mechanism-in-java) –

答えて

1

は、はThreadContextでUUIDを置きます。構成で

%XパターンコンバータではThreadContextからUUIDを抽出します(また、ご使用の構成にロガーを追加しました)

<?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

簡単です別の解決策があるようにあなたが必要なものであれば、気軽に各ログレコードの一意のIDです。 Log4j doc
の唯一のアップデートは、%u{"RANDOM"}を追加するXMLファイルのレイアウトを変更することです。

サンプルXML構成は

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