2012-12-19 3 views
10

Ich habe die folgende Konfigurationsdatei, die dem Standardbeispiel im Logback-Handbuch sehr ähnlich ist. Der einzige Unterschied ist die Zugabe von [% F:% L]. Während alles funktioniert, funktionieren% F und% L nicht. Wenn ich den async Appender entferne und direkt mit dem Datei Appender logge, funktioniert alles super.Logback AyncAppender nicht drucken Datei- und Zeilennummer

kann jemand erklären, was vor sich geht? Und wie den Dateinamen und die Zeilennummer zu drucken, wie diese beiden Parameter sollen?

<configuration> 
    <appender name="FILE" class="ch.qos.logback.core.FileAppender"> 
    <file>myapp.log</file> 
    <encoder><pattern>%logger{35} - [%F:%L] - %msg%n</pattern></encoder> 
    </appender> 
    <appender name="ASYNC" class="ch.qos.logback.classic.AsyncAppender"> 
     <appender-ref ref="FILE" /> 
    </appender> 
    <root level="DEBUG"><appender-ref ref="ASYNC" /></root> 
</configuration> 

Antwort

21

Sie benötigen AsyncAppender die includeCallerData Eigenschaft auf true gesetzt. Hier ist die modifizierte Konfig-Datei:

+2

Ha, du kennst dein Ding :) – Klaus

+0

nicht für mein Problem. Ich benutze 1.2.16 –

0

Ich poste die gleiche Antwort in groovy Format für jemanden, der groovy Stil wie ich wollen.

appender('FILE', ch.qos.logback.core.FileAppender) { 
    file = 'myapp.log' 
    encoder(PatternLayoutEncoder) { 
     pattern = '%logger{35} - [%F:%L] - %msg%n' 
    } 
} 
appender('ASYNC', ch.qos.logback.classic.AsyncAppender) { 
    appenderRef('FILE') 
    //add the following line 
    includeCallerData = true 
} 

root(DEBUG, ['ASYNC'])