Logback: почему не пишет в debug?

260
23 января 2018, 11:39

Создал логирование через logback:

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <conversionRule conversionWord="highlightEx" converterClass="config.LoggerHighLightConfig" />
    <property name="LOG_PATH" value="${LOG_PATH:-/log}"/>
    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
        <layout class="ch.qos.logback.classic.PatternLayout">
            <Pattern>
                %d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{36} - %msg%n
            </Pattern>
        </layout>
    </appender>
    <appender name="FILE-DEBUG"
              class="ch.qos.logback.core.rolling.RollingFileAppender">
        <file>${LOG_PATH}/debug.log</file>
        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
            <Pattern>
                %d{yyyy-MM-dd HH:mm:ss} - %msg%n
            </Pattern>
        </encoder>
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <!-- rollover daily -->
            <fileNamePattern>${LOG_PATH}/archived/debug.%d{yyyy-MM-dd}.%i.log
            </fileNamePattern>
            <timeBasedFileNamingAndTriggeringPolicy
                    class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
                <maxFileSize>10MB</maxFileSize>
            </timeBasedFileNamingAndTriggeringPolicy>
        </rollingPolicy>
    </appender>
    <appender name="FILE-INFO"
              class="ch.qos.logback.core.rolling.RollingFileAppender">
        <file>${LOG_PATH}/info.log</file>
        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
            <Pattern>
                %d{yyyy-MM-dd HH:mm:ss} - %msg%n
            </Pattern>
        </encoder>
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <!-- rollover daily -->
            <fileNamePattern>${LOG_PATH}/archived/info.%d{yyyy-MM-dd}.%i.log
            </fileNamePattern>
            <timeBasedFileNamingAndTriggeringPolicy
                    class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
                <maxFileSize>50MB</maxFileSize>
            </timeBasedFileNamingAndTriggeringPolicy>
        </rollingPolicy>
    </appender>
    <appender name="FILE-ERROR"
              class="ch.qos.logback.core.rolling.RollingFileAppender">
        <file>${LOG_PATH}/error.log</file>
        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
            <Pattern>
                %d{yyyy-MM-dd HH:mm:ss} - %msg%n
            </Pattern>
        </encoder>
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <!-- rollover daily -->
            <fileNamePattern>${LOG_PATH}/archived/error.%d{yyyy-MM-dd}.%i.log
            </fileNamePattern>
            <timeBasedFileNamingAndTriggeringPolicy
                    class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
                <maxFileSize>10MB</maxFileSize>
            </timeBasedFileNamingAndTriggeringPolicy>
        </rollingPolicy>
    </appender>
    <!--<logger name="org.hibernate.type" level="ALL" />-->
    <!--<logger name="org.hibernate" level="DEBUG" />-->
    <!-- Send logs to both console and file audit -->
    <logger name="debug" level="debug">
        <appender-ref ref="FILE-DEBUG"/>
        <appender-ref ref="STDOUT"/>
    </logger>
    <logger name="error" level="error">
        <appender-ref ref="FILE-ERROR"/>
        <appender-ref ref="STDOUT"/>
    </logger>
    <root level="info">
        <appender-ref ref="FILE-INFO"/>
        <appender-ref ref="STDOUT"/>
    </root>
</configuration>

Вызов лога выглядит так:

LOGGER.debug(messageService.getMessage(LOG_SAVE), getClassName(dto));

При исполнении тестов не пишет дебаги в файл debug.log. То есть, инфо пишет в файл info.log, а в дебаг ничего не пишет.

Наблюдения:

  1. При тестах файл создаётся, значит, путь логирования в настройках указан верно.
  2. При тестах в инфо пишутся логи уровня инфо, значит, логи вызываются правильно.

Что не так?

Answer 1

У вас:

  1. root level="info"
  2. логеры определены не правильно.
    • logger name="debug" это логер для пакета debug.*
    • logger name="error" это логер для пакета error.*

так как у вас явно не эти пакеты используются, то происходит логирование по root, т.е. info

Поставьте

<logger name="you.package.name" level="debug">...</logger>

READ ALSO
База данных в текстовом файле

База данных в текстовом файле

Создаю простое приложение которое должно хранить данные пользователя в текстовом файле (один для всех пользователей), авторизация также...

232
Проверка состояния

Проверка состояния

У меня есть сервер и клиент(Написанные на Java)

197
Обновление фрагментов View Pager

Обновление фрагментов View Pager

Как можно обновить все фрагменты view pager? То есть чтобы фрагменты создались заново, в том числе текущий

202
Обрезать ссылки до имени файла

Обрезать ссылки до имени файла

Есть некоторе количество ссылок на файлы, которые лежат в блоках (div > li > a)Их надо обрезать до названия файла, т

228