当前位置: 首页 > news >正文

log4j 同一线程隔离classloader下MDC信息不同问题解决 ThreadLocal问题分析

最近遇到日志文件记录错误的问题。一个任务的日志信息会被莫名的拆分到两个不同目录中。且有一个目录还是曾经执行过的任务的目录。经过分析,首先怀疑的是MDC没有清理的问题,这也是最直观的问题。因为任务是在线程池(fixedThreadPool)中运行的。由于线程会被重用,而MDC是绑定在Threadlocal上的,所以如果没有清理,是会造成上述问题。但是在代码检查中发现在线程的开始,是重新设置过MDC信息的。所以,怀疑的对象转移到了多classloader上。由于不能肯定,所以进行测试如下:

全文详见个人独立博客:https://www.coderli.com/log4j-mdc-classloader-problem/

log4j 同一线程隔离classloader下MDC信息不同问题解决 ThreadLocal问题分析 | OneCoder 最近遇到日志文件记录错误的问题。一个任务的日志信息会被莫名的拆分到两个不同目录中。且有一个目录还是曾经执行过的任务的目录。经过分析,首先怀疑的是MDC没有清理的问题,这也是最直观的问题。因为任务是在线程池(fixedThreadPool)中运行的。由于线程会被重用,而MDC是绑定在Threadlocal上的,所以如果没有清理,是会造成上述问题。但是在代码检查中发现在线程的开始,是重新设置过MDC信息的。所以,怀疑的对象转移到了多classloader上。由于不能肯定,所以进行测试如下:icon-default.png?t=O83Ahttps://www.coderli.com/log4j-mdc-classloader-problem/

加入频道领免费Java学习资料:腾讯频道邀请

加入大佬免费带队Java学习群:Java学习群

http://www.lryc.cn/news/432592.html

相关文章:

  • 【2024-2025源码+文档+调试讲解】微信小程序的城市公交查询系统
  • Android14音频进阶之定制ramdisk文件系统init服务(八十三)
  • Clickhouse 为什么这么快
  • 后仿真中《建立违例和保持违例》你死板思维了吗?
  • springboot启动时替换配置参数
  • postgres数据库中如何看查询是否走索引,以及在什么情况下走索引
  • AI预测福彩3D采取888=3策略+和值012路或胆码测试9月7日新模型预测第80弹
  • MQTT broker搭建并用SSL加密
  • 深度剖析AI情感陪伴类产品及典型应用 Character.ai
  • [数据集][目标检测]街头摊贩识别检测数据集VOC+YOLO格式758张1类别
  • 面试准备-3
  • Unity教程(十五)敌人战斗状态的实现
  • 利用深度学习实现验证码识别-3-ResNet18
  • UDP通信实现
  • windows下使用vscode编写运行以及调试C/C++
  • python容器4--集合
  • MySQL record 01 part
  • 2024年高教社杯全国大学生数学建模竞赛A题思路(2024数学建模国赛A题思路)
  • Go语言基础语法 20240904更新
  • 软件测试 | 性能测试
  • Arduino IDE
  • 统计学习方法与实战——统计学习方法之感知机
  • 语言学习有捷径?没错!这4个方法让你轻松搞定英语翻译
  • 聊一聊大型网站稳定性建设思路
  • Nginx常用配置
  • 前端开发中遇到的小问题以及解决方案记录2
  • Qt-常用控件(3)-输入类
  • 使用Docker启动Redis容器并映射端口
  • 用fastapi搭建cpca地址提取服务接口
  • libvncclient编写多线程qt的VNC客户端