2017-07-10 10 views
1

私はアプリケーションを開発中です。私はログ側にログバックを使用します。私はこの形式のようなログをフォーマットする必要があります。例えばログバックを使用してログをフォーマットする

aaa-mm-dd HH:mm:ss ## level ## TheNameOfMyApplication ## typeOfLogs ## class ## message 

これは私の質問は、私がlogger.info(のparametreに渡すために行うことができる方法である私のファイルlogback.xmlのスニペット

<?xml version="1.0" encoding="UTF-8"?> 
<configuration> 

    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> 
     <layout class="ch.qos.logback.classic.PatternLayout"> 

     <Pattern> 
      %d{yyyy-MM-dd HH:mm:ss} ## %-5level## TheNameofMyApplication ## %logger{36}##%msg%n 
     </Pattern> 
     </layout> 
    </appender> 

    <logger name="org.springframework.web" level="info" additivity="false"> 
     <appender-ref ref="STDOUT" /> 
    </logger> 

    <logger name="com.myapp" level="info" additivity="false"> 
     <appender-ref ref="STDOUT" /> 
    </logger> 

    <root level="error"> 
     <appender-ref ref="STDOUT" /> 
    </root> 

</configuration> 

です)私のタイプログ。あなたはPatternLayoutは内%X指定子を使用して、MDC(マップされた診断コンテキスト)を使用することができ *技術、アプリケーション、およびその他の

敬具

答えて

2

:私は三種類があります。 MDCを設定するために、slf4j/logbackについてはLOGBack - Mapped Diagnostic Context


MDC.put("nameofapplication", "technical"); 

がドキュメントに見てください:、その後、

<Pattern> 
    %d{yyyy-MM-dd HH:mm:ss} ## %-5level%X{nameofapplication} %logger{36}##%msg%n 
</Pattern> 

そして、あなたのコードを:あなたのパターンは次のようになります。デフォルト値は、エントリが指定されていない場合は、

のようなセパレータ :-を使用する必要があります
%{variable:-default value} 

だから、あなたのパターンは次のようになります。

<Pattern> 
    %d{yyyy-MM-dd HH:mm:ss} ## %-5level%X{nameofapplication:-technical} %logger{36}##%msg%n 
</Pattern> 
+0

おかげで、それは私の作品@alfcope。その変数のデフォルト値を設定する可能性はありますか? – Victor

+0

ありがとう@alfcopeそれは魅力的に機能します:) – Victor

+0

'private static final Logger logger = LoggerFactory.getLogger(MyClassTest)の直後に、それぞれのクラスでMDC.put(" nameofapplication "、" technical ")を一度呼び出すことは可能ですか? .class); '次にMDC.put(" nameofapplication "、" technical ") – Victor

関連する問題