При реализации log4j2 я получаю класс класса ERROR org.apache.logging.log4j.core.pattern.MapPatternConverter не может содержать несколько статических методов newInstance
- Создать класскоторый реализует Logger из Log4j2, использует StringMapMessgae для добавления журналов и использует приведенную ниже конфигурацию log4j для получения значений для MapMessage в patternLayout
val final logger:org.apache.logging.log4j.Logger = LogManager.getLogger(Logger.class);
val mapMessage:StringMapMessage = new StringMapMessage();
class MyClass(){
//Append to mapMessage
def someMethod(message:String ){
mapMessage.with("Key1", Objects.requireNonNull("someValue--1", "defaultValue"));
}
//Append to mapMessage
def doSomeMoreMethod(key:String messgae:String) {
mapMessage.with("Key2", Objects.requireNonNull("someValue--2", "defaultValue"));
}
def readyToLog(){
//sending the map to the logger
logger.info(mapMessage)
}
}
<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="INFO">
<Appenders>
<Console name="console" target="SYSTEM_OUT">
<PatternLayout
pattern="%date{ISO8601}Z %level %map{Key1} %map{Key2} %n"
/>
</Console>
</Appenders>
<Loggers>
<Root level="debug" additivity="false">
<AppenderRef ref="console" />
</Root>
</Loggers>
</Configuration>
Ожидаемый
[INFO] 2019-04-10 13: 08: 40.687 [main-ScalaTest-running-YourYourApplicationTest] MyClass $ - someValue - 1 someValue - 2
Actual PatternLayout не может преобразовать указанный шаблондля stringMapMessage
2019-04-10 13: 08: 40,559 main-ScalaTest-running-YourYourApplicationTest ERROR Класс класса org.apache.logging.log4j.core.pattern.MapPatternConverter не может содержать несколько статических newInstanceметоды 2019-04-10 13: 08: 40 560 main-ScalaTest-running-YourYourApplicationTest ОШИБКА Нераспознанный спецификатор преобразования [map] начиная с позиции 68 в схеме преобразования.[INFO] 2019-04-10 13: 08: 40.681 [main-ScalaTest-running-YourYourApplicationTest] MyClass $ -% map
[ОШИБКА] 2019-04-10 13: 08: 40.687 [main-ScalaTest-running-YourYourApplicationTest] MyClass $ -% map