Как изолировать записи журнала отладки в отдельном файле, используя Logback - PullRequest
0 голосов
/ 30 ноября 2018

Я не могу найти простой XML-файл конфигурации для Logback, чтобы добиться следующего:

  • Консоль должна отображать все записи, кроме записей DEBUG регистратора org.apache.ignite.
  • Файл ignite.log должен содержать записи INFO (и выше) из регистратора org.apache.ignite.
  • Файл ignite-debug.log должен содержать записи DEBUG (и выше) из регистратора org.apache.ignite.
  • Файл spring.log должен содержать все записи журнала org.springframework.
  • Файл application.log должен содержать все записи журнала com.example.myapplication.

myНа данный момент файл конфигурации:

<?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 идут в консоль.

...