[英]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.