0

Запуск Logback в режиме отладки

10

Я недавно перешел с log4j на logback и хотел бы узнать, есть ли простой способ запустить logback в режиме отладки, аналогичный свойству log4j.debug в log4j. Мне нужно увидеть, откуда он берет мой файл logback.xml.

В документации упоминается использование StatusPrinter для вывода внутреннего статуса logback, но это потребует внесения изменений в код.

3 ответ(ов)

0

[ИЗМЕНЕНИЕ]

Эта проблема была исправлена в Logback 1.0.4. Теперь вы можете использовать -Dlogback.debug=true для включения отладки настройки Logback.

-- Старый ответ --

К сожалению, на данный момент нет способа включить отладку через системное свойство. Вам нужно использовать <configuration debug="true"> в файле logback.xml. Пожалуйста, подайте запрос на добавление этой функции.

0

Вот как я это делаю. Я устанавливаю системное свойство с названием log.level, а затем ссылаюсь на него в logback.xml.

Редактирование: Недостаток в том, что log.level всегда должен быть установлен. Чтобы с этим справиться, я проверяю это в своем методе main и устанавливаю уровень на INFO, если он еще не задан, обязательно делаю это перед первыми вызовами логирования. Тогда я могу переопределить его из командной строки и иметь разумное значение по умолчанию.

Вот как это выглядит в моем logback.xml:

<configuration>
    <logger name="com.mycompany.project" level="${log.level}" />
    <logger name="httpclient" level="WARN" />
    <logger name="org.apache" level="WARN" />
    <logger name="org.hibernate" level="WARN" />
    <logger name="org.hibernate.cfg.AnnotationBinder" level="WARN" />
    <logger name="org.hibernate.cfg.annotations" level="WARN" />
    <logger name="org.quartz" level="WARN" />
    <logger name="org.springframework" level="WARN" />

    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
        <encoder>
            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%-16thread] %-5level %-35.35logger{30} - %msg%n</pattern>
        </encoder>
    </appender>
    <root level="${log.level:-INFO}">
        <appender-ref ref="STDOUT" />
    </root>
</configuration>
0

Это довольно просто. Вы можете использовать следующий вариант:

log.level = debug

в файле application.properties вашего Spring Boot приложения.

Либо вы можете установить уровень логирования в файле конфигурации logback.xml, добавив следующий код:

<root level="${log.level}">
    <appender-ref ref="ANY_APPENDER" />
</root>

Оба подхода позволят вам настроить уровень логирования в вашем приложении.

Чтобы ответить на вопрос, пожалуйста, войдите или зарегистрируйтесь