elasticsearch log4j2转换为Ecllayout和屏蔽

3bygqnnd  于 2023-01-25  发布在  ElasticSearch
关注(0)|答案(1)|浏览(156)

目前,使用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的参数可能是什么?

iq3niunx

iq3niunx1#

您正在使用的%spi模式显然是由com.usbank.digitalservices.common.log.mask的一个私有Log4j2插件提供的。
EcsLayout不能利用模式转换器,但通用的JSON Template Layout可以。您只需要复制embedded EcsLayout.json template并将“message”的定义替换为:

"message": {
  "$resolver": "pattern",
  "pattern": "%spi",
  "stackTraceEnabled": false
}

相关问题