目前,使用log4j 2时敏感字段的日志屏蔽工作正常,现在我想将日志格式更改为ecs。因此,我对log4j2.xml和EcsLayout标记进行了如下更改:
<Configuration xmlns="http://logging.apache.org/log4j/2.0/config" status="OFF"
packages="com.usbank.digitalservices.common.log.mask">
<Properties>
<Property name="base.log.dir">./logs</Property>
<Property name="appenderPatternLayout">%d{yyyy-MM-dd'T'HH:mm:ss.SSS'Z'} %-5p %-15c{1} [%X]: %spi%n</Property>
<Property name="maxLogFileSize">10 MB</Property>
<Property name="maxLogFiles">2</Property>
</Properties>
<Appenders>
<Console name="CONSOLELOG" target="SYSTEM_OUT" follow="true">
<!-- <PatternLayout pattern="${appenderPatternLayout}"/> -->
**<EcsLayout stackTraceAsArray="true" serviceName="my-api"/>**
</Console>
现在日志已正确转换为json,但掩码不起作用,即appenderPatternLayout /spi不起作用。
关于如何屏蔽EcsLayout,appenderPatternLayout的参数可能是什么?
1条答案
按热度按时间iq3niunx1#
您正在使用的
%spi
模式显然是由com.usbank.digitalservices.common.log.mask
的一个私有Log4j2插件提供的。EcsLayout
不能利用模式转换器,但通用的JSON Template Layout可以。您只需要复制embeddedEcsLayout.json
template并将“message”的定义替换为: