SpringBoot基于Aop自定义Slf4j日志输出格式

2020-01-09  本文已影响0人  183619962

需求

当线上服务或者接口出现异常之后,第一时间需要做的就是追踪日志,找出问题到底出现在哪里,但是在现有的分布式及微服务的背景下,一个请求的调用链往往比较的长,所以一般情况下会选择使用一个请求的唯一ID输出为日志,然后便于日常运维过程的问题追踪,如何优雅自如的自定义一个log输出呢?下面使用AOP加上logback来给一个简单优雅的方式;解放双手,告别体力活。

Aop

这里不做AOP的介绍。除了使用AOP也可以使用Filter去做,不管是AOP还是Filter,目的就是在请求来的时候将其拦住,然后往MDC中塞入自定义的一一些属性,即可实现自定义的变量输出

何为MDC?

这里的MDC就是一个工具类,其本质就是使用ThreadLocal将自定义的变量存储起来,这么一说相信各位就知道这个自定义参数的套路了;请求之前将请求拦截,将自定义的属性值存进去;业务过程中,如果打印日志,就将本地ThreadLocal中自定义的属性一起输出。其实原理就这么简单,具体要如何输出,要输出什么,就得看你自己的骚操作了!!!

配置

配置切面

END!!!

上一篇下一篇

猜你喜欢

热点阅读