Пользовательский плагин Log4j2 не работает - PullRequest
0 голосов
/ 29 января 2020

У меня есть пользовательский плагин Converter в общей библиотеке, и я использую общую библиотеку в обслуживании (приложение с загрузочной пружиной). И общая библиотека, и сервис - это проекты gradle. Локально работает, не работает в препрод. Preprod env - это облако, и мы докеризируем сервис.

Я попытался извлечь развернутый файл jar в контейнере docker в preprod, и у него есть общая библиотека правильной версии с настраиваемым плагином конвертера.

Я исключил зависимости spring-boot-starter-logging из службы, а также из общей библиотеки, чтобы избежать конфликтов.

Я также заметил, что в preprod env метод newInstance () в плагин никогда не вызывается, вместо этого вызывается конструктор, поэтому он не распознает пользовательский ключ преобразователя шаблона "ckeymsg".

Вот мой конвертер -

package something.logging

@Plugin(name="Log4j2MaskConverter", category = PatternConverter.CATEGORY)
@ConverterKeys({"ckeymsg"})
public class Log4j2MaskConverter extends LogEventPatternConverter {

    // logger is instantiated here

    protected Log4j2MaskConverter(String name, String style) {
        logger.info("in the constructor");
        super(name, style);
    }

    public static Log4j2MaskConverter newInstance(String[] options) {
        logger.info("in the newInstance method");
        return new Log4j2MaskConverter("ckeymsg", Thread.currentThread().getName());
    }

    private void initConfig() {
    }
}

Log4j2. xml -

<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="trace" packages="something.logging">
     .
     .
     .
</Configuration>

Любая помощь в этом? Я не уверен, что там происходит.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...