gpt4 book ai didi

java - 多个正则表达式替换log4j2 xml模式标签

转载 作者:行者123 更新时间:2023-11-30 02:36:00 26 4
gpt4 key购买 nike

您好,我正在通过 xml 文件配置 log4j2。我已经设置了一个附加程序并且它正在正确记录。我在配置两个正则表达式来替换日志的 %message 变量中的文本时遇到问题。

我在我的 java 代码中记录消息,如下所示:

logger.info("{ 'name':'person', age:'42' }");

我正在将这些日志发送到 Kafka,并希望将所有 { 或 } 替换为“”,将所有 ' 替换为“。

我当前使用的模式如下所示:

<pattern>{ "logTimestamp":"%date{ISO8601}", %replace{%replace{%message{nolookups}}{\\"|\\'|"}{'}}{{|}}{},"host":"${hostname}" }</pattern>

但是这不起作用,替换后我收到以下解析消息:

{ "logTimestamp":"2017-03-27T11:11:17,247", %replace}{"}{'},"host":"hostname" }

使用 log4j2 %replace 匹配和替换两个模式的正确方法是什么?

最佳答案

您需要将一个 %replace 语句嵌套在另一个语句中。

试试这个:

%replace{ %replace{%msg}{&apos;}{&quot;} }{\{|\}}{&quot;&quot;}

结果是:

"" "name":"person", age:"42" ""

希望对您有所帮助。

关于java - 多个正则表达式替换log4j2 xml模式标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43050243/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com