【问题标题】:Multiple regular expression replacements log4j2 xml pattern tag多个正则表达式替换 log4j2 xml 模式标记
【发布时间】:2017-08-20 09:17:27
【问题描述】:

您好,我正在通过 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 匹配和替换两个模式的正确方法是什么?

【问题讨论】:

    标签: java xml logging log4j log4j2


    【解决方案1】:

    试试这个:

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

    结果是:

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

    希望对你有帮助。

    【讨论】:

      猜你喜欢
      • 2012-09-12
      • 1970-01-01
      • 1970-01-01
      • 2012-11-02
      • 2017-08-08
      • 2019-10-16
      • 1970-01-01
      • 2015-02-21
      • 2021-04-24
      相关资源
      最近更新 更多