Logback: я могу изменить имена уровня журнала? (ПРЕДУПРЕЖДЕНИЕ -> ПРЕДУПРЕЖДЕНИЕ) - PullRequest
0 голосов
/ 08 ноября 2018

Logback:

timestamp INFO msg...
timestamp WARN msg...
timestamp INFO msg...

классическая регистрация Java (JUL):

timestamp INFO    msg...
timestamp WARNING msg...
timestamp INFO    msg...

Я предпочитаю, чтобы уровень WARNING был больше, чем INFO, поэтому я легко могу различить его визуально при сканировании вывода журнала.

1 Ответ

0 голосов
/ 08 ноября 2018

Вы можете указать разные шаблоны входа для достижения того, чего вы хотите - вы можете отправить регистрацию информационного уровня аппендиру, который использует стандартную компоновку, а затем предупредить другого аппендера, который вместо этого использует слово WARNING:

<configuration debug="true">
    <appender name="info" class="ch.qos.logback.core.ConsoleAppender">
        <filter class="ch.qos.logback.classic.filter.LevelFilter">
            <level>WARN</level>
            <onMatch>DENY</onMatch>
            <onMismatch>ACCEPT</onMismatch>
        </filter>
        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
            <pattern>
                %d{"ISO8601", UTC} %p %m%n
            </pattern>
        </encoder>
    </appender>
    <appender name="warn" class="ch.qos.logback.core.ConsoleAppender">
        <filter class="ch.qos.logback.classic.filter.LevelFilter">
            <level>WARN</level>
            <onMatch>ACCEPT</onMatch>
            <onMismatch>DENY</onMismatch>
        </filter>
        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
            <pattern>
                %d{"ISO8601", UTC} WARNING %m%n
            </pattern>
        </encoder>
    </appender>
    <root level="info">
        <appender-ref ref="info"/>
        <appender-ref ref="warn"/>
    </root>
</configuration>

Параметр %p заменяется исходным уровнем журнала сообщений, поэтому мы сохраняем его для информационного шаблона, для шаблона предупреждения мы не используем %p, а вместо этого используем постоянную WARNING.

Этот конфиг будет находиться в вашем logback.xml файле в корне ресурсов.

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

Изменена конфигурация xml для использования фильтров и наличия только одного корневого логгера

Идея здесь состоит в том, чтобы отфильтровать все, за исключением уровня предупреждения для первого приложения, а затем на втором уровне принять только уровень предупреждения и переопределить журнал, чтобы показать ПРЕДУПРЕЖДЕНИЕ

пример вывода:

2018-11-08 10:52:40,460 WARNING Exception calculating properties for model(...)
2018-11-08 10:52:40,757 INFO Generating unique operation named: ...
...