2013-02-17 6 views
6

Ten plik logback.xml loguje się do pliku, ale nie loguje się do konsoli? Mam nadzieję, że ktoś może wykryć błąd konfiguracji w tej konfiguracji? Tu jest mój podstawowy config rejestrator:Ten plik logback.xml loguje się do pliku, ale nie loguje się do konsoli?

import org.slf4j.Logger; 
import org.slf4j.LoggerFactory; 
... 
public static Logger logger = LoggerFactory.getLogger("JUnit"); 
... 
logger.info("This comment fails to show in console but it shows in log file"); 

A oto logback.xml:

<configuration> 

    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> 
    <!-- encoders are assigned the type 
     ch.qos.logback.classic.encoder.PatternLayoutEncoder by default --> 
    <encoder> 
     <pattern>%-4relative [%thread] %-5level %logger{35} - %msg %n</pattern> 
    </encoder> 
    </appender> 

    <appender name="FILE" class="ch.qos.logback.core.FileAppender"> 
    <file>junitOut.log</file> 
    <append>false</append> 
    <!-- encoders are assigned the type 
     ch.qos.logback.classic.encoder.PatternLayoutEncoder by default --> 
    <encoder> 
     <pattern>%-4r %-5level %logger{35}: %msg%n</pattern> 
    </encoder> 
    </appender> 

    <root level="DEBUG"> 
    <appender-ref ref="FILE" /> 
    </root> 

    <!-- We want error logging from this logger to go to an extra appender 
     It still inherits CONSOLE STDOUT from the root logger --> 
    <logger name="junitOut" level="INFO"> 
     <appender-ref ref="STDOUT" /> 
    </logger> 

</configuration> 

Odpowiedz

7

Nie jednoznacznie zdefiniować rejestrator nazwie „JUnit”, więc komunikat rejestrowania trafi do korzeni rejestrator bezpośrednio. Rejestrator główny ma tylko jednego programistę, tj. "PLIK", więc komunikat logowania zostanie zapisany tylko do pliku. Możesz dodać "STDOUT" do głównego rejestratora w twoim przypadku:

 <root level="DEBUG"> 
     <appender-ref ref="FILE" /> 
     <appender-ref ref="STDOUT" /> 
     </root> 
+0

Dziękujemy! To było to. Naprawdę doceniam pomoc. :-) – djangofan