spring为每个请求增加traceId

前言

spring开发web项目经常会查看日志,通常都是根据每个http请求来查询整个链路的日志。

有时这些请求的参数都差不多,日志也很相似,很难分辨出是否同一链路的请求。

有时我会根据线程id来查询,但是tomcat的线程是复用的,同一个线程id对应多个请求链路日志,为此还是想办法为每个请求分配一个链路id。

原理

  • 标记:logback 在 SLF4J API 利用诊断上下文映射 (MDC)为每个请求打上唯一标记。例如:标记为traceId。
  • 使用标记:logback的pattern使用 %X{traceId}。
  • 打标记时机:HandlerInterceptor的preHandle方法
  • 清除标记:HandlerInterceptor的afterCompletion方法

实践

  • 打标记/清除标记

1、打标记【preHandle方法】filter类:*InterceptorString traceId = getTraceId(request);MDC.put(“traceId”, traceId);private String getTraceId(HttpServletRequest request){ return String.format(“%s – %s”,request.getRequestURI(), UUID.randomUUID());}备注:filter需注入@BeanWebMvcConfigurer createWebMvcConfigurer(@Autowired HandlerInterceptor[] interceptors) { return new WebMvcConfigurer() { public void addInterceptors(InterceptorRegistry registry) { for (HandlerInterceptor interceptor : interceptors) { registry.addInterceptor(interceptor); } } };}2、清除标记【afterCompletion方法】MDC.clear();

  • logback【见上一篇logback文章】

./log/${LOG_FILE}.log ./log/${LOG_FILE}.%d{yyyy-MM-dd}.gz 30 100MB %d{yyyy-MM-dd HH:mm:ss.SSS} [%X{traceId}] [%thread] %-5level %logger{50} %L – %msg%n %d{yyyy-MM-dd HH:mm:ss.SSS} [%X{traceId}] [%thread] %-5level %logger{50} %L – %msg%n 备注:%X{traceId} : 标记的使用和输出。

资料

https://logbackcn.gitbook.io/logback/08-di-ba-zhang-mdc【强烈推荐logback详解

https://zhuanlan.zhihu.com/p/61395047

https://www.cnblogs.com/cjsblog/p/11831046.html

https://logback.qos.ch/manual/mdc.html

其实啊,logback 的中文手册一篇足以,都来自于它的变体或实践。

郑重声明:本文内容及图片均整理自互联网,不代表本站立场,版权归原作者所有,如有侵权请联系管理员(admin#wlmqw.com)删除。
(0)
用户投稿
上一篇 2022年7月31日
下一篇 2022年7月31日

相关推荐

  • 地下城堡3虫干获得方法

    虫干是地下城堡3中非常重要的道具,很多玩家都想要知道地下城堡3虫干在哪里刷,小编为大家带来地下城堡3虫干获得方法。 地下城堡3虫干获得方法 1.出海:简单10困难20噩梦30,困难…

    2022年8月3日
  • 5岁多的孩子,看到人就想打人怎么办?

    5岁多的孩子,正处于想要交朋友,并且还想要交很多朋友的阶段。但是很多孩子不知道如何正确地与人沟通,也不知道怎么样让别人喜欢自己。所以就会在有小朋友的地方要么给人家捣乱,要么伸手打人…

    2022年8月21日
  • 《魔兽世界》怀旧服WLK嚎风峡湾怎么去 WLK嚎风峡湾玩法技巧

    魔兽世界怀旧服WLK嚎风峡湾怎么去呢?很多玩这款游戏的小伙伴对于这个嚎风峡湾怎么去的方法不太清楚,其实想要去这个嚎风峡湾并没有大家想的那么难,如果大家实在不清楚这个嚎风峡湾的进入方…

    2022年9月27日
  • 自营性电商项目④

    类别管理–根据id查询类别详情–持久层 13.1. 规划SQL语句 本次需要执行的SQL语句大致是: select * from pms_category …

    2022年6月18日
  • 用细胞夹夹黑头,简直不要太快乐

    让我看看有哪位姐妹还是在用手挤黑头的!手上那么多细菌,黑头也只会越挤越多!一定要试试细胞夹,一整个夹出来要多爽有多爽 我是个大油皮,本身t字区就喜欢出油,黑头自然也很多,跟着骆大娘…

    2022年6月17日
  • 鸡中翅除了炸,用我教你的这个方法,一碟都归你

    鸡中翅、鸡腿的日常吃法,相信大家都不陌生。如果不想自己在家烹饪,都会去到麦当当、肯德德都会买到炸鸡翅来吃。吃多了难免会觉得不适合自己的口味了…… 今天就由喜欢下厨的伟兴手把手教你制…

    2022年8月15日
  • 茶梅的养殖方法及注意事项

    有些喜欢花草树木的人想在家中养殖茶梅,但对它的养殖方法了解不多,使得自己的茶梅怎么也养不好,今天我会为大家介绍茶梅的养殖方法和注意项,能让大家掌握养殖茶梅的方法与技巧,想养茶梅的人…

    2022年5月15日
  • 为什么面部总觉得脏?有什么好的面部清洁方法?

    面部清洁的方式很多,但做对了也是很简单的。 有些人清洁不够,导致肌肤脏污残留比较多,像这样: 正确的面部清洁,无论男女都要做好,清洁是护肤的第一步。 主要有如下方式: 1,卸妆 主…

    2022年5月17日
  • 去跳蚤最简单的方法(屋里有跳蚤怎么样才能最快去除)

    跳蚤是小型无翅、善跳跃的寄生性节肢动物,通常寄生在哺乳类动物身上,雌雄均吸血,危害人体健康和宠物健康,那么怎么去跳蚤呢?下面就为大家介绍去跳蚤最简单的方法。 1.柠檬喷雾 将柠檬切…

    2022年4月20日
  • 让心情更加轻松愉快的两个好方法

    生活中我们常常会陷入负面情绪之中,比如不停地自我否定,又或者过于关注别人对自己的态度,别人一个眼神都要琢磨半天,最后也没捉摸出一个所以然来;又或者常常后悔自己的一些小失误,一些小遗…

    2022年4月29日

联系我们

联系邮箱:admin#wlmqw.com
工作时间:周一至周五,10:30-18:30,节假日休息