使用正则表达式屏蔽敏感日志

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>emailphone 字符串
  • ": - ": 字符串
  • [^,]* - 逗号以外的零个或多个字符
  • ,? - 一个可选的 , 字符。

替换为"":"****"" + 第 1 组值 + ":"***".

参见regex demo