如何在log4j2 JSON布局配置中通过代码传递KeyValuePair的值?

问题描述

我想将一些值从我的代码传递到我的 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":"值"}

我想从我的代码中传递这个 Key ValueFromCode 的值。类似的东西,

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

这应该将我的日志写为 {"instant":{"epochSecond":1625138085,"loggerName":"XXXXXXXXXX","message":"TestXXX","ValueFromCode":" Key ValueFromCode 的一些值"}

请告诉我这是否可以实现。如果有任何替代方法可以实现相同的目标。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...