2017-09-05 1 views
1

Ich versuche, Protokolle in Konsole sowie Datei anzuzeigen, aber in der Datei möchte ich nur bestimmte Protokolle, die von einer bestimmten Klasse angezeigt werden und ich bin mir nicht sicher, wie dies zu tun ist. Unten ist mein logback.xmlZeige Protokolle nur von einer Klasse mit Logback

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

<configuration> 

    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> 
     <encoder> 
      <pattern>{ "date_time":"%date", "thread":"[%thread]", "log_level":"%-5level", "class_name":"%logger{0}", "log_message":"%msg" }%n</pattern> 
     </encoder> 
    </appender> 

    <appender name="FILE" class="ch.qos.logback.core.FileAppender"> 
    <file> test.txt </file> 
    <append>false</append> 
    <encoder> 
     <pattern>{ "date_time":"%date", "thread":"[%thread]", "log_level":"%-5level", "class_name":"%logger{0}", "log_message":"%msg" }%n</pattern> 
    </encoder> 
    </appender> 

    <root level="info"> 
    <appender-ref ref="FILE" /> 
    <appender-ref ref="STDOUT" /> 
    </root> 

</configuration> 

Antwort

2

Nur eine logger für „eine bestimmte Klasse“ deklarieren und dann mit Ihrem FILE appender dass Logger zuordnen.

Zum Beispiel:

<appender name="FILE" class="ch.qos.logback.core.FileAppender"> 
    <file>test.log</file> 
    <encoder> 
     <pattern>{ "date_time":"%date", "thread":"[%thread]", "log_level":"%-5level", "class_name":"%logger{0}", "log_message":"%msg" }%n</pattern> 
    </encoder> 
</appender> 

<logger name="your.particular.Class"> 
    <appender-ref ref="FILE" /> 
</logger> 

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

Dadurch wird sichergestellt, dass alle Protokolle emittieren Ereignisse von your.particular.Class sind nur zum FILE appender gerichtet und alle anderen Protokolle nur zum STDOUT appender gerichtet werden.

Verwandte Themen