Вы можете указать разные шаблоны входа для достижения того, чего вы хотите - вы можете отправить регистрацию информационного уровня аппендиру, который использует стандартную компоновку, а затем предупредить другого аппендера, который вместо этого использует слово 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: ...