在Logback中拦截和修改日志
事实上,Logback并没有提供修改日志的直接方法,但有一种解决方法可以通过使用过滤器来实现我们的目标,即使它看起来有点黑客。
假设你记录了某个用户的某个id号数百次,它分散在整个应用程序中,现在你有了一个新的要求,要求你必须加密这个id号。当然,你足够聪明,可以为此任务编写一个拦截器,而不是手动查找和更改必要的日志。同样,通过这种方式,我们可以确保我们永远不会意外地记录该id号。
在这种情况下,我们将扩展TurboFilter并覆盖其决定方法。
如果日志符合我们的条件并且我们想更改它,我们会通过返回FilterReply来拒绝它。DENY,然后使用更改的对象重新登录。
在这里,为了简单起见,我使用info作为日志级别,但如果你不想更改日志级别,你可以很容易地检查即将到来的日志具有哪个级别并使用该级别。
一旦你处理了递归,并且没有忘记在配置文件中正确声明你的自定义过滤器,就很容易了。
Intercepting and modifying logs in Logback
Actually, Logback does not offer a direct way to modify logs but there is a workaround we can achieve our goal by using filter even though it looks like a bit hacky.
Let’s say that you logged some id no of some user hundreds of times, it scattered through all over the application and now you have a new requirement that says you have to encrypt this id