使用正则表达式屏蔽敏感日志
Masking sensitive logs using regex
我试图通过在 logback.xml 文件中链接替换正则表达式来掩盖日志。
%replace(%replace(%msg){'"email":(.*?),','"email":"****"'}){'"phone":(.*?),','"phone":"****"'}))
它在工作,但是否有任何其他正则表达式解决方案而不是正则表达式替换链接?
我们可以像这样使用正则表达式吗?
(%replace(%msg){'"(email|phone)":(:*?)','"***",'}
我试过了,但是格式不对。
要求的输出是:
{"email":"****","phone":"****"}
您可以使用
(%replace(%msg){'"(email|phone)":[^,]*,?','"":"****"'})
"(email|phone)":[^,]*,?
正则表达式匹配
"
- 一个 "
字符
(email|phone)
- 第 1 组 (</code>):<code>email
或 phone
字符串
":
- ":
字符串
[^,]*
- 逗号以外的零个或多个字符
,?
- 一个可选的 ,
字符。
替换为"":"****"
:"
+ 第 1 组值 + ":"***"
.
参见regex demo。
我试图通过在 logback.xml 文件中链接替换正则表达式来掩盖日志。
%replace(%replace(%msg){'"email":(.*?),','"email":"****"'}){'"phone":(.*?),','"phone":"****"'}))
它在工作,但是否有任何其他正则表达式解决方案而不是正则表达式替换链接?
我们可以像这样使用正则表达式吗?
(%replace(%msg){'"(email|phone)":(:*?)','"***",'}
我试过了,但是格式不对。
要求的输出是:
{"email":"****","phone":"****"}
您可以使用
(%replace(%msg){'"(email|phone)":[^,]*,?','"":"****"'})
"(email|phone)":[^,]*,?
正则表达式匹配
"
- 一个"
字符(email|phone)
- 第 1 组 (</code>):<code>email
或phone
字符串":
-":
字符串[^,]*
- 逗号以外的零个或多个字符,?
- 一个可选的,
字符。
替换为"":"****"
:"
+ 第 1 组值 + ":"***"
.
参见regex demo。