MDC(Mapped Diagnostic Context,映射调试上下文)是 log4j 、logback及log4j2 提供的一种方便在多线程条件下记录日志的功能。MDC 可以看成是一个与当前线程绑定的哈希表,内部是基于threadLocal实现,可以往其中添加键值对。MDC 中包含的内容可以被同一线程中执行的代码所访问。当开启isThreadContextMapInheritable属性后,当前线程的子线程会继承其父线程中的 MDC 的内容。当需要记录日志时,日志框架会自动从 MDC中获取所需的信息,MDC 的内容需要由程序在适当的时候保存进去。

MDC能满足如下需求:

  1. 在做日志链路跟踪时,如何在多线程之间进行上下文传递
  2. 生产环境中,如何让某个玩家ID或者ID列表打印出DEBUG日志,其他玩家还是INFO
  3. 生产环境中,如何让某个玩家ID或者ID列表的日志打印到独立的文件

背景:
项目中使用log4j2作为日志系统,然而在高并发的情况下,多个玩家的请求的日志链路参杂在一起,要跟踪某个用户一次的请求操作所有日志是很麻烦的,要根据不同玩家打印不同级别的根本就是做不到的。
log4j2 的MDC ThreadContext 和CloseableThreadContext 就提供了相关功能,

API说明:

clear() 

LOG4J2-MDC-全链路跟踪等功能研究相关推荐

  1. 网易云音乐全链路跟踪系统实践

    昨天的分享会,听我们公司技术大佬分享.收获超多! 经过大佬允许后上传,除了大佬的独家干货,还有我自己的小见解. 欢迎一起讨论~~ 本文全面讲述了云音乐全链路跟踪系统的设计思想,实践路线,以及在技术选择 ...

  2. 全链路跟踪之线程上下文Thread Local实战(完整源码)

    写在开头: 我是「猿码天地」,一个热爱技术.热爱编程的IT猿.技术是开源的,知识是共享的! 写博客是对自己学习的总结和记录,如果您对Java.分布式.微服务.中间件.Spring Boot.Sprin ...

  3. 天机阁——全链路跟踪系统设计与实现

    小时光茶社 传说中天机阁里有一台掌控世间一切的机器,万物运行由此产生.本文的"天机阁"是一个基于链路跟踪的监控系统,后台开发人员能够通过"天机阁"洞察" ...

  4. 【转载】天机阁——全链路跟踪系统设计与实现

    转载自:天机阁--全链路跟踪系统设计与实现 传说中天机阁里有一台掌控世间一切的机器,万物运行由此产生.本文的"天机阁"是一个基于链路跟踪的监控系统,后台开发人员能够通过" ...

  5. 全链路跟踪系统设计与实践(转载)

    转自:沪江全链路跟踪系统设计与实践 转自:#研发解决方案介绍#Tracing(鹰眼) 转自:zipkin 转自:分布式系统调用跟踪实践 转自:jim-framework 转自:Brave接入ZipKi ...

  6. 微服务全链路跟踪:jaeger集成istio,并兼容uber-trace-id与b3

    微服务全链路跟踪:grpc集成zipkin 微服务全链路跟踪:grpc集成jaeger 微服务全链路跟踪:springcloud集成jaeger 微服务全链路跟踪:jaeger集成istio,并兼容u ...

  7. 全链路灰度新功能:MSE上线配置标签推送

    为什么需要配置标签推送 从全链路灰度谈起 在微服务场景中,应用的灰度发布迎来了新的挑战.不同于单体架构中将应用整体打包即可发布测试版本,微服务应用往往由多个服务组合而成.这些服务通常由不同的团队负责, ...

  8. 分布式全链路跟踪系统-skywalking

    什么是链路追踪 本节视频 [视频]Spring Cloud Alibaba-SkyWalking-分布式链路追踪 微服务架构是通过业务来划分服务的,使用 REST 调用.对外暴露的一个接口,可能需要很 ...

  9. 基于Spring Aop及log4j2的MDC实现全链路调用跟踪(traceid)

    环境: Springboot:2.2.3.RELEASE Spring-boot-starter-log4j2: 2.2.2.RELEASE jdk:1.8 目标: 实现Springboot框架下的全 ...

最新文章

  1. 牛客 2018年长沙理工大学第十三届程序设计竞赛 G-逃离迷宫
  2. C# 调用Excel 出现服务器出现意外情况. (异常来自 HRESULT:0x80010105 (RPC_E_SERVERFAULT)
  3. obs 推流编码在哪设置_OBS录屏软件
  4. php属于脚本,php是脚本语言吗
  5. 浅谈计算机程序设计语言,探讨计算机程序设计语言教学
  6. 简单的libevent例子
  7. python爬人人贷代码视频_利用python爬取人人贷网的数据
  8. l298n电机哪一端为正_L298N是如何控制直流电机正反转的
  9. linux会计软件,免费好用的会计软件(Manager for Mac)
  10. 细数阿里 25 个开源的前端项目,让你的 2021 路更加平坦
  11. 时间复杂度与空间复杂度-o(1)、o(n)、o(logn)、o(nlogn)、斐波那契
  12. ubuntu20.04 常用开发工具整理
  13. Android 图片文件读取
  14. 嵌入式调试神器-虚拟示波器之JScope
  15. teamviewer 黑屏 linux,Teamviewer 在 Linux 下无法启动?
  16. 图割论文阅读笔记:“GrabCut” — Interactive Foreground Extraction using Iterated Graph Cuts
  17. 软件测试职业发展规划
  18. Spring 5 + Spring MVC 5 + MyBatis 3 的 Maven 项目集成
  19. 抖音短视频KOL推广真的有效果吗?
  20. MATLAB自编自适应中值滤波算法

热门文章

  1. ThinkAdmin基本操作
  2. word文档表格后面的空白页怎么删除?
  3. View被遮挡的解决办法
  4. 校验两个时间段是否重合
  5. 平面解析几何----焦点弦上焦半径长度符合的条件1/AF+1/BF=2/ep
  6. 高等数学学习笔记——第八讲——数列极限的性质(2.数列极限的四则运算法则)
  7. Linux下常用软件安装指南
  8. api 微信内置浏览器js_【微网站开发】之微信内置浏览器API使用
  9. Postman~做接口测试
  10. 【信号处理】Matlab实现语音变速变调