Запустите Logback в Debug

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

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

Ответы на вопрос(5)

В eclipse вы можете иметь несколько конфигураций прогонов. Откройте свой основной класс. Перейдите в раскрывающийся список «Отладка» на панели инструментов «Затмение» и выберите «Отладка конфигурации». Щелкните значок «Новая конфигурация запуска» в левом верхнем углу. Дайте вашей конфигурации запуска лучшее имя. Перейдите на вкладку «Аргументы» под именем и введите -Dlog.level = debug или что угодно. Нажмите Закрыть или Отладить

Вы можете сделать это снова и указать, например, -Dlog.level = warn.

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

Редактировать:Недостатком является то, что вы ДОЛЖНЫ всегда иметь «log.level». Способ, которым я справляюсь с этим, состоит в том, чтобы включить мой основной метод и установить его в 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>
 Chirlo12 июл. 2012 г., 10:29
вы можете присвоить свойству значение по умолчанию для вашего logback.xml, если оно не определено, например:<root level="${log.level:-info}"> Таким образом, вам не нужно устанавливать его в основном методе, если он не установлен.
 David Roussel02 февр. 2014 г., 10:02
Если вам нравится мой ответ, пожалуйста, проголосуйте. Вот как работает этот сайт. :-)
 David Roussel19 июл. 2012 г., 12:04
Спасибо, я пропустил это. Теперь вы упоминаете это, я могу видеть это в документахlogback.qos.ch/manual/...
 Gene De Lisa01 февр. 2014 г., 00:32
Спасибо за оба комментария. В Eclipse я не могу установить переменную среды в конфигурации запуска, чтобы отключить ведение журнала при запуске сайта mvn, но у меня есть уровень отладки по умолчанию при запуске отдельных тестов в Eclipse. Благодарю.

Я не мог заставить его работать, используя выбранный ответ. Однако сработало следующее:

java -Dlogback.configurationFile=/path/to/config-debug.xml com.domain.Main

Просто добавьте файл (config-debug.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>%d{dd-MMM-yyyy HH:mm:ss.SSS} %-5level [%thread] %logger{36} - %msg%n</pattern>
        </encoder>
    </appender>

    <root level="debug">
        <appender-ref ref="STDOUT" />
    </root>
</configuration>

Запустите ваше приложение, используя вышеупомянутые-D параметр.

Когда все вернется на круги своя, удалите-D Параметр и перезапустите приложение.

Источник:Глава 3: Конфигурация обратного входа

Вы можете установить статус слушателя класса через системное свойство:

java -Dlogback.statusListenerClass=ch.qos.logback.core.status.OnConsoleStatusListener ...

Увидеть:Руководство по возврату

Решение Вопроса

[РЕДАКТИРОВАТЬ]

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

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

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

 David Roussel19 июл. 2012 г., 12:05
Функция "исправлена" и находится в logback 1.0.4.
 Antony Stubbs09 мая 2012 г., 17:23
Это было сделано :jira.qos.ch/browse/LBCLASSIC-225 Пожалуйста, проголосуйте за это!
 Rich Dougherty29 июн. 2015 г., 23:07
Чтобы было абсолютно ясно, теперь вы можете включить отладку Logback с системным свойством, например,-Dlogback.debug=true, С помощьюgordondickens.com/wordpress/2013/07/18/....
 ben300018 июл. 2017 г., 09:52
... за исключением того, что в настоящее время невозможно включить это, если вы используете конфигурацию Groovy:установка свойства logback.debug с помощью groovy config вызывает исключения при получении регистраторов.

Ваш ответ на вопрос