6

このlogback.xmlはファイルにログを記録していますが、コンソールにログを記録できませんか?誰かがこの構成の構成エラーを見つけられることを望んでいますか?これが私の基本的なロガー設定です:

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");

そしてここに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>
4

1 に答える 1

7

「JUnit」という名前のロガーを明示的に定義しないため、ログメッセージはルートロガーに直接送信されます。ルートロガーには「FILE」という1つのアペンダーしかないため、ログメッセージはファイルにのみ書き込まれます。この場合、ルートロガーに「STDOUT」アペンダーを追加できます。

      <root level="DEBUG">
         <appender-ref ref="FILE" />
         <appender-ref ref="STDOUT" />
      </root>
于 2013-02-19T11:18:45.130 に答える