logback邮件报警--动态发送不同收件人

logback错误邮件告警,相信大家都会,只需在logback的xml文件上配置一下即可,但是如果想根据不同业务场景,邮件告警发送给不同的业务负责人,那么如何实现呢?

首先立马能想到的就是基于javax.mail包实现,再用线程池实现多线程处理,那这样项目中就会额外增加部分代码量,于是乎在思考是否可以依然基于logback实现呢?

答案就是:Slf4j MDC机制

关于这个机制原理,网上资料很多(https://blog.csdn.net/xiaolyuh123/article/details/80560662),大家自行去百度。

核心代码就是:

MDC.remove("emailTo");
MDC.put("emailTo", emailTo);

通过MDC设置收件人参数,使用前先把原值清空一下。然后在logback的xml配置文件使用%X{emailTo}符合配置即可。

logback邮件报警--动态发送不同收件人_第1张图片

你可能感兴趣的:(java)