0

在 mule 中,当请求到来时,mule 会自动记录包含信用卡信息的完整请求,我们不想在有效负载中记录该字段。我们是否可以自定义有效负载以隐藏某些字段或屏蔽日志中的某些字段。

4

3 回答 3

1

如果您正在记录所有 mule 类别,那么 org.mule.DefaultMuleMessage 也将被记录(并且它包含有效负载)。在您的日志记录配置中:

<!-- this will log all mule log messages -->   
<logger name="org.mule" level="DEBUG" />

如果您想隐藏它,您可以降低父 mule 类别级别并明确记录您感兴趣的类别。例如:

<!-- this will log all mule log messages -->   
<logger name="org.mule" level="WARN" />
<logger name="org.mule.endpoint" level="INFO" />
<logger name="org.mule.transformer" level="INFO" />
<logger name="org.mule.session" level="DEBUG" />
于 2013-03-06T13:23:29.727 回答
0

Log4j2 在写入日志时有几种替换数据的方法

在一个新的测试 Mule 应用程序中,打开 log4j2.xml 配置并更改 PatternLayout 模式属性,如:

<PatternLayout pattern="%d [%t] %-5p %c - %replace{%m}{(^.*?)(foo)(.*?$)}{$1bar$3}%n" />

因此,写入日志的任何消息 (%m) 都可以编辑信息。

...orker.01] 信息 org.mule.api.processor.LoggerMessageProcessor - bar

于 2018-03-22T12:19:44.630 回答
0

您可以在使用 logger 之前将正则表达式应用于您的有效负载。下面是代码示例

cardRegex="(\\\\b(?!59\\\\d{14})\\\\d{13,50}\\\\b)"
maskedCardString="XXXX ... XXX"

以上值位于 .properties 文件中。下面的语句将正则表达式匹配替换为 XXXX ... XXX

#[payload.replaceAll(${cardRegex},${maskedCardString})]
于 2018-03-22T05:58:27.977 回答