Как настроить или удалить атрибуты по умолчанию в Log4j2 - JSON Layout - PullRequest
1 голос
/ 05 мая 2020

В приложении Spring Boot 2 я настроил Log4j2 с JsonLayout, как показано ниже

    ....

    <Appenders>
        <Console name="ConsoleJSONAppender" target="SYSTEM_OUT">
            <JsonLayout complete="false" compact="false">
            </JsonLayout>
        </Console>
    </Appenders> 
    <Logger name="CONSOLE_JSON_APPENDER" level="INFO" additivity="false">
        <AppenderRef ref="ConsoleJSONAppender" />
    </Logger>

    .....

, и я получил результат, как показано ниже

    {
            "timeMillis" : 1496306649058,
            "thread" : "main",
            "level" : "INFO",
            "loggerName" : "ConsoleJSONAppender",
            "message" : "Json Message",
            "endOfBatch" : false,
            "loggerFqcn" : "org.apache.logging.log4j.spi.AbstractLogger",
            "threadId" : 1,
            "threadPriority" : 5
    }

Выход в порядке, но Мне не нужны такие атрибуты, как «endofBatch», «threadPriority» и другие , но они отображаются в журналах, как избежать нежелательных (по умолчанию) атрибутов в JsonLayout логи на основе .

1 Ответ

1 голос
/ 05 мая 2020

Если вы хотите регистрировать только level и loggerName, то настройте, как показано ниже, в вашем файле конфигурации.

...
<PatternLayout>
    <pattern>{"level":"%p","loggerName":"%c"}</pattern>
</PatternLayout>
...

Параметр описан в здесь . Найдите Patterns в Pattern Layout.

...