如何使用Logback在单独的文件中隔离调试日志条目

时间:2018-11-30 20:34:58

标签: java logging logback

我无法为Logback提供一个简单的XML配置文件来实现以下目的:

  • 控制台应显示除记录器org.apache.ignite的DEBUG条目以外的所有条目。
  • 文件ignite.log中应包含来自记录器org.apache.ignite的INFO(及以上)条目。
  • 文件ignite-debug.log中应包含来自记录器org.apache.ignite的DEBUG(及以上)条目。
  • 文件spring.log应该包含记录器org.springframework的所有条目。
  • 文件application.log应该包含记录器com.example.myapplication的所有条目。
到目前为止,

我的配置文件:

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

  <property name="LOGS" value="./logs" />

  <appender name="Console" class="ch.qos.logback.core.ConsoleAppender">
    <layout class="ch.qos.logback.classic.PatternLayout">
      <pattern>
        %black(%d{ISO8601}) %highlight(%-5level) [%blue(%t)] %yellow(%c{1.}): %msg%n%throwable
      </pattern>
    </layout>
  </appender>

  <appender name="SpringLogFile" class="ch.qos.logback.core.FileAppender">
    <file>${LOGS}/spring-boot.log</file>
    <encoder>
      <pattern>%d{ISO8601}\t%p\t%c{1.}\t[%t]\t%msg%n</pattern>
    </encoder>
  </appender>

  <appender name="IgniteLogFile" class="ch.qos.logback.core.FileAppender">
    <file>${LOGS}/ignite.log</file>
    <encoder>
      <pattern>%d{ISO8601}\t%p\t%c{1.}\t[%t]\t%msg%n</pattern>
    </encoder>

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

  <appender name="IgniteDebugLogFile" class="ch.qos.logback.core.FileAppender">
    <file>${LOGS}/ignite-debug.log</file>
    <encoder>
      <pattern>%d{ISO8601}\t%p\t%c{1.}\t[%t]\t%msg%n</pattern>
    </encoder>
  </appender>

  <appender name="ApplicationLogFile" class="ch.qos.logback.core.FileAppender">
    <file>${LOGS}/application.log</file>
    <encoder>
      <pattern>%d %p %c{1.} [%t] %msg%n</pattern>
    </encoder>
  </appender>

  <logger name="com.example.myapplication" additivity="false">
    <appender-ref ref="ApplicationLogFile" />
    <appender-ref ref="Console" />
  </logger>

  <logger name="org.springframework" additivity="false" level="debug">
    <appender-ref ref="SpringLogFile" />
    <appender-ref ref="Console" />
  </logger>

  <logger name="org.apache.ignite" additivity="false" level="debug">
    <appender-ref ref="IgniteDebugLogFile" />
    <appender-ref ref="IgniteLogFile" />
    <appender-ref ref="Console" />
  </logger>

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

</configuration>

上述配置的问题是org.apache.ignite的调试项进入控制台。

0 个答案:

没有答案