簡體   English   中英

log4j2 轉換為 Ecslayout 和屏蔽

[英]log4j2 converstion to Ecslayout and masking

目前敏感字段的日志屏蔽使用 log4j2 工作正常,現在我想將日志格式更改為 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 的參數是什么?

您使用的%spi模式顯然是由com.usbank.digitalservices.common.log.mask的私有 Log4j2 插件提供的。

EcsLayout不能利用模式轉換器,但通用JSON 模板布局可以。 您只需要復制嵌入的EcsLayout.json模板並將“消息”的定義替換為:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM