2013-10-30 11 views
10

Log Ich habe das Logbuch Handbuch für 2 Stunden gelesen und kann immer noch nicht herausfinden, wie ich das mache, was ich brauche.Logback: wie nur Fehler in Datei

Es ist so einfach wie der Titel sagt: Ich möchte nur die Fehler in eine Datei protokollieren, und die anderen Ebenen (einschließlich Fehler) zu trösten.

Dies ist die Wurzel Abschnitt meiner logcat.xml Datei:

<root level="TRACE" > 
     <appender-ref ref="CONSOLE_APPENDER" /> 
     <appender-ref ref="FILE_APPENDER" /> 
    </root> 

Das Problem bei dieser Konfiguration ist, dass es jedes Level> = TRACE für beide Appen protokolliert.

Ich konnte die Wurzel mit nur Konsole lassen, und eine Datei Logger definieren:

<logger name='file_logger' level='ERROR' > 
     <appender-ref ref="FILE_APPENDER" /> 
    </logger> 

Aber dann müsste ich den normalen Logger wie dies zu nennen:

LoggerFactory.getLogger(ClientClass.class); 

und die Datei Logger wie folgt:

Ich möchte nicht den Logger für jede Klasse wählen. Ich möchte nur den Root-Logger von der Fabrik mit der Klasse als Parameter abrufen, und es die richtige Sache je nach Level tun.

Ist das möglich?

Antwort

19

Setzen Sie diese in Ihre Datei appender Definition:

<filter class="ch.qos.logback.classic.filter.ThresholdFilter"> 
     <level>ERROR</level> 
    </filter> 

Die ThresholdFilter ist in logback-classic.jar.

+1

Schön. Ich benutze [Logback für Android] (https://github.com/tony19/logback-android) und scheint auch zu arbeiten. –

+3

Dies kann auch helfen; XSD für logback.xml. Das kann dir bei Konfigurationsvariablen helfen. https://github.com/enricopulatzo/logback-XSD – az3