【发布时间】: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