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

server/2024/9/23 4:31:37/

最近遇到日志文件记录错误的问题。一个任务的日志信息会被莫名的拆分到两个不同目录中。且有一个目录还是曾经执行过的任务的目录。经过分析,首先怀疑的是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.ppmy.cn/server/114773.html

相关文章

已解决:ppt文件打开就是只读模式,如何改为可编辑模式?

PPT文档打开是只读模式,如何改成可编辑文档呢?这需要分几种情况来说,所以今天将介绍几种方法帮助PPT只读文档改为可编辑文档。 方法一: 我们可以先查看一下文件属性,属性中有只读属性,当我们打开文档之后带…

机器学习和深度学习的区别

机器学习和深度学习作为人工智能领域的两大重要分支,虽然有着紧密的联系,但在多个方面存在显著的差异。以下将从定义与起源、技术基础、模型复杂度、数据需求、计算资源需求、应用领域以及学习方式与特点等角度,详细阐述机器学习和深度学习的…

2024全球广播摄像机市场前景如何?IP网络化云端融合趋势加强

一、前言 当前,全球广播电视用户持续向流媒体迁移。大多数国家广播电视台推出独立流媒体平台,流媒体趋势日渐加强。与奈飞等非广电系流媒体平台只提供点播服务不同,广电系流媒体平台一般提供电视频道直播服务、电视回看服务、视频点播服务&a…

[数据集][目标检测]石油泄漏检测数据集VOC+YOLO格式6633张1类别

数据集格式:Pascal VOC格式YOLO格式(不包含分割路径的txt文件,仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数):6633 标注数量(xml文件个数):6633 标注数量(txt文件个数):6633 标注…

力扣每日1题--2181.合并零之间的节点

问题 下面我会向大家介绍我的思考过程和解题思路 解题思路 首先,我们看问题提供给我们的提示部分。第一点给了我们节点的数目,第二点给了我们val的范围,而我们这道题是要让我们求和的问题,那么我们就应该估算一下我们数据的一个…

JVM、JRE、JDK之间的关系

1.是什么 在Java编程中,JVM(Java虚拟机)、JRE(Java运行时环境)和JDK(Java开发工具包)是三个不同的概念,它们之间有紧密的联系,但各自承担不同的角色和功能。 下面的例子中…

社交媒体的未来:Facebook如何通过AI技术引领潮流

在数字化时代的浪潮中,社交媒体平台不断演变,以适应用户需求和技术发展的变化。作为全球领先的社交媒体平台,Facebook在这一进程中扮演了重要角色。尤其是人工智能(AI)技术的应用,正在深刻地改变Facebook的…

MySQL 锁

在MySQL中,锁机制是用于协调多个并发事务对同一资源的访问,确保数据的一致性和完整性。不同的锁类型和粒度适应不同的应用场景,通过合理运用锁机制,可以最大限度地提升数据库的并发性能和数据一致性。 一、MySQL中的锁分类 MySQ…