У меня есть пользовательский плагин 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>
Любая помощь в этом? Я не уверен, что там происходит.