Есть ли способ добавить несколько шаблонов в logback. xml? - PullRequest
0 голосов
/ 29 января 2020

Я работаю над реализацией регистратора и пытаюсь напечатать операторы регистратора в другом шаблоне, используя журнал уровня ОШИБКИ.

Это конфигурация XML, используемая для печати регистраторов. Есть ли способ добавить несколько шаблонов и распечатать операторы на основе условия.

<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <file>${LOG_HOME:-logs}/${LOG_FILE_NAME:-eportal-daas}.log</file>
        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
            <Pattern>
            %d{yyyy-MM-dd HH:mm:ss} %-5level [%thread] %logger - %M - %L :[trackId=%X{trackId}]|uuid=%uuid|accountName=%X{accountName}|appName=%X{appName}|userName=%X{userName}|exceptionIssueCode=%expRoot|
                :errorMessage=%msg
                :stackTrace=%ex %n
            </Pattern>
        </encoder>
    </appender>

Ниже приведен пример оператора с использованием java кода регистратора

logger.error("********* Application Started Successfully *********");

2020-01-29 13:14:00 ERROR [main] com.apptium.Application - main - 64 :[trackId=]|uuid=66d1caaa-17ae-46c9-abf2-28f0da789353|accountName=|appName=|userName=|exceptionIssueCode=EP03NANIL -> UNEXPECTED ERROR|
                :errorMessage=********* Application Started Successfully *********
                :stackTrace= 

Технически говоря, это не сообщение об ошибке. Уровень root настроен как ОШИБКА. Мне нужно печатать по другому шаблону. Я использую slf4j.

1 Ответ

0 голосов
/ 29 января 2020

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

<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
  <filter class="ch.qos.logback.classic.filter.LevelFilter">
    <level>INFO</level>
    <onMatch>ACCEPT</onMatch>
    <onMismatch>DENY</onMismatch>
  </filter>
  <encoder>
    <Pattern>
  ...
</appender>

<appender name="fout"...
</appender>

<root level="INFO">
  <appender-ref ref="FILE" />
  <appender-ref ref="fout" />
</root>

{ ссылка }

...