Как передать значение в конфигурации макета log4j2 JSON значение KeyValuePair из кода?

avatar
Popin Lisham
1 июля 2021 в 16:23
119
0
1

Я хочу передать некоторое значение из своего кода в свои журналы в формате JSON. Ключ этого значения должен определяться в файле конфигурации журнала.

Моя конфигурация XML log4j2-spring.xml выглядит следующим образом:

  <Console name="Console" target="SYSTEM_OUT">
        <JsonLayout complete="false" stacktraceAsString="true" eventEOL="true" compact="true">
            <KeyValuePair key="ValueFromCode" value="Value"/>                
        </JsonLayout>
   </Console>

Когда я пишу Logger logger = LogManager.getLogger(this.getClass()); logger.info("TestXXX")

приведенная выше конфигурация записывает журнал как

{"instant":{"epochSecond":1625138085,"nanoOfSecond":35827700},"thread":"XXXXX","level":"INFO","loggerName":"XXXXXXX","message": "TestXXX", "endOfBatch": false, "loggerFqcn": "org.apache.logging.slf4j.Log4jLogger", "threadId": XX, "threadPriority": X, "ValueFromCode":"Value "}

Я хочу передать значение этого ключа ValueFromCode из моего кода. Что-то вроде

Logger logger = LogManager.getLogger(this.getClass()); logger.info("TestXXX","some value for Key ValueFromCode")

и это должно записать мой журнал как {"instant":{"epochSecond":1625138085,"nanoOfSecond":35827700},"thread":"XXXXX","level":"INFO","loggerName":"XXXXXXXXXX","message":"TestXXX" ,"endOfBatch":false,"loggerFqcn":"org.apache.logging.slf4j.Log4jLogger","threadId":XX,"threadPriority":X,"ValueFromCode":"некоторые значение для ключа ValueFromCode"}

Пожалуйста, скажите мне, достижимо ли это. Если есть альтернативный способ добиться того же.

Источник

Ответы (0)