背景:一个环境,包含n个实例。有多实例部署的,也有测试环境和生产环境的不同,所以想在邮件里面区分
1、拦截器里面初始化logback的mdc属性,当然这里还可以放入一些其他的属性,用于区分不同的服务器。
1 private static String MDC_KEY = "computerName";//日志里面区分不同服务器 2 if (StringUtil.isEmpty(MDC.get(MDC_KEY))) { 3 MDC.put(MDC_KEY, System.getProperty("user.name")); 4 logger.debug("computerName={}", MDC.get(MDC_KEY)); 5 }
2、logback配置文件里面通过%X{computerName}的方式获取mdc里面的属性值
1 <layout class="ch.qos.logback.classic.html.HTMLLayout"> 2 <pattern>%X{computerName}%date%level%thread%logger{0}%line%message</pattern> 3 </layout>
3、发送的邮件里面就会包含这部分信息了