Cek*_*eki 19
logback版本0.9.27引入了替换功能.替换支持正则表达式.例如,如果记录的消息是"userid = alice,pswd ='my secret'",则输出模式为
"%d [%t] $logger - %msg%n",
Run Code Online (Sandbox Code Playgroud)
你只需将模式修改为
"%d [%t] $logger - %replace(%msg){"pswd='.*'", "pswd='xxx'"}%n"
Run Code Online (Sandbox Code Playgroud)
请注意,上面使用了选项引用.
之前的日志消息将输出为"userid = alice,pswd ='xxx'"
对于超强性能,您还可以将日志语句标记为CONFIDENTIAL,并指示%replace仅对标记为CONFIDENTIAL的日志语句执行替换.例,
Marker confidential = MarkerFactory.getMarker("CONFIDENTIAL");
logger.info(confidential, "userid={}, password='{}'", userid, password);
Run Code Online (Sandbox Code Playgroud)
不幸的是,当前版本的logback还不支持条件替换(基于标记或其他).但是,您可以通过扩展ReplacingCompositeConverter轻松编写自己的替换代码.如果您需要进一步的帮助,请在logback用户邮件列表上大喊大叫.
| 归档时间: |
|
| 查看次数: |
9258 次 |
| 最近记录: |