有没有一种方法可以通过AsyncLogger使用log4j 2-elasticsearch-hc appender将JSON对象设置为elasticsearch索引作为键值对

wkftcu5l  于 12个月前  发布在  ElasticSearch
关注(0)|答案(2)|浏览(90)

我使用Using log4j 2-elasticsearch-hc appender(asyncLogger)直接将日志写入ElasticSearch。我的日志基本上是日志POJO(即。JSON)。然而;当我说Logger.info(logPojoInstance);整个示例针对名为“message”的属性进行字符串化,而不是作为键值对。请查看下面的屏幕截图中的ElasticSearch输出:x1c 0d1x
怎样才能使LogDTO以键-值的形式显示,而不是以字符串化/序列化的JSON显示在message旁边......我希望能够查询这些日志,这在这种情况下是不可能的。
我尝试了VirtualProperty方法,但由于我使用AsyncLogger,该值似乎没有设置。

<VirtualProperty name="ctxVariable" value="$${ctx:myFavouriteVariable:-notSupportedWithAsyncLogger}" dynamic="true" />

任何线索请让我知道!
同时粘贴log4j2.xml以供参考:

zbdgwd5y

zbdgwd5y1#

您可以将官方JSON Template Layoutlog4j2-elasticsearch-hc结合使用。JTL是目前功能最丰富、最可定制的基于JSON的布局,可以呈现非String消息。有关详细信息,请参阅message事件模板解析器文档。

相关问题