Я использую Log4J2 для структурированного ведения журнала (json) в моем приложении
Моя конфигурация такая, как показано ниже -
<RollingFile
name=""
fileName=""
filePattern=""
ignoreExceptions="false">
<JsonLayout complete="true" compact="false" properties="true" ></JsonLayout>
<PatternLayout>
<pattern>%d [%t] %p %c %X - %m%n</pattern>
</PatternLayout>
<Policies>
<SizeBasedTriggeringPolicy size="10MB" />
</Policies>
<DefaultRolloverStrategy max="5" />
</RollingFile>
Способ печати моего журнала, как показано ниже -
{
"timeMillis" : 1580995302702,
"thread" : "main",
"level" : "INFO",
"loggerName" : "com.MyClass",
"message" : "JOB start - JOB Instance ID - 4943142 ",
"endOfBatch" : false,
"loggerFqcn" : "org.apache.logging.slf4j.Log4jLogger",
"contextMap" : [ {
"key" : "myKey",
"value" : "myValue"
} ]
}
Но внутри contextMap - он печатает значение ключа отдельно, как я хочу, чтобы он печатал contextMap, как показано ниже
{
"timeMillis" : 1580995302702,
"thread" : "main",
"level" : "INFO",
"loggerName" : "com.MyClass",
"message" : "JOB start - JOB Instance ID - 4943142 ",
"endOfBatch" : false,
"loggerFqcn" : "org.apache.logging.slf4j.Log4jLogger",
"contextMap" : [ {
"myKey" : "myValue"
} ]
}
любая помощь приветствуется