定时任务日志traceid

在使用xxl-job框架作为项目中的定时任务管理时,JobHandler线程记录日志时没有traceId,导致查询日志时不方便。其他框架如SpringMVC、Dubbo等都提供了拦截器,可以通过拦截器手动添加traceId,或者直接使用brave.zipkin自动添加traceId,网上有很多资料可以参考,这里仅介绍一下xxl-job集成spring时添加traceId的一种方法。
方法比较简单,xxl-job的handler都是通过spring管理,直接通过spring aop的方式,在handler执行之前添加traceId,直接上代码

@Aspect
@Component
@Slf4j
public class XXLJobHandlerAspect {

    @Before("execution(public * com..*.execute(String))")
    public void beforMethod(JoinPoint joinPoint){
        //往slf4j的MDC中添加traceId
        MDC.put("traceId", DigestUtils.md5Hex(UUID.randomUUID().toString()).substring(8, 24));
        log.info("method :{} 修改traceId",joinPoint.getSignature());
    }
}

DigestUtils是org.apache.commons.codec工具类,也可以选择其他的工具。
修改日志记录格式:
property.pattern=%d [%p] [%X{ traceId}] [%thread] %.40c{1.}.%M:%L – %m%n
这样,handler中的日志打印都会有traceId

Original: https://www.cnblogs.com/tiancai/p/16498489.html
Author: 甜菜波波
Title: 定时任务日志traceid

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/553647/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • redux常规教程

    var totalNum = taskinfo.reduce((acc, cur) => { return (acc || 0) + (cur?.totalNum || 0)…

    技术杂谈 2023年6月1日
    0100
  • Redis篇:事务和lua脚本的使用

    现在多数秒杀,抽奖,抢红包等大并发高流量的功能一般都是基于 redis 实现,然而在选择 redis 的时候,我们也要了解 redis 如何保证服务正确运行的原理 前言 redis…

    技术杂谈 2023年7月25日
    080
  • java内存区域模型和详解

    一,概述 java虚拟机运行时数据区模型图: 主要包括:程序计数器,java虚拟机栈,本地方法栈,java 堆,方法区(元空间)。 其中堆和方法区由所有线程共享的数据区;程序计数器…

    技术杂谈 2023年7月11日
    074
  • Linux系统创建可执行文件软链接

    由于创建软链接这个事情,在算法开发的日常中使用到的并不是很多,因此本文也是做一个简单的回顾。这里我们使用的案例是通过TMalign这个蛋白质打分文件,在编译好可执行文件之后,可以使…

    技术杂谈 2023年7月24日
    087
  • 【Qt+VS】Qt图标不显示|Qt程序运行时图标不显示

    4、配置属性-》自定义生成工具-》常规命令行:【”你自己的rcc.exe路径” -name “%(Filename)” -no-co…

    技术杂谈 2023年5月30日
    078
  • 史上最强IDEA工具使用教程,你想要的全都有!

    课程导读 俗话说:工欲善其事必先利其器。想要快速写出好的代码,更是离不开一个好的工具。在这个快速发展的社会,一个好的工具,能帮我们在开发过程中节省大量的开发时间。本套课程给同学们带…

    技术杂谈 2023年7月25日
    074
  • 好物合集(2)

    Utools(超好用的插件软件) 是什么 uTools 是一个极简、插件化的现代桌面软件,通过自由选配丰富的插件,打造得心应手的工具集合。 通过快捷键(默认 alt + space…

    技术杂谈 2023年7月11日
    093
  • CentOS安装NodeJS

    NodeJS 构建VUE项目 这部分很基础,网上很多教程 yum install -y wget 如果已经安装了可以跳过该步 在https://nodejs.org/en/down…

    技术杂谈 2023年6月1日
    088
  • 设计模式-享元模式

    类型:结构型 目的:降低对象创建时大量属性也随之被新建而带来的性能上的消耗 话不多说,我们看一个案例。 优化案例 现在需要采购一批办公用的电脑,以下是 Computer类的定义。 …

    技术杂谈 2023年7月11日
    061
  • IntelliJ IDEA – System.out.println shortcut

    https://www.websparrow.org/misc/intellij-idea-system-out-println-shortcut#:~:text=println%…

    技术杂谈 2023年5月31日
    0103
  • java中关于找对象的一些方法

    1.new一个对象 Bh bh1= new Bh(); Bh bh2= new Bh("bhgeek", 18, 65.0f); 通过new的方式,我们可以调用…

    技术杂谈 2023年7月11日
    062
  • 深度学习研究生第一年之际,前来谈谈自己的感受

    前言 在即将结束研究生第一年之际,前来谈谈自己的感受。 你可以把这篇文章当做深度学习者、程序员、研究生的简短自白。可能会有点啰嗦,会有点无趣。但如果有时间、感兴趣,不妨阅读阅读,或…

    技术杂谈 2023年7月11日
    079
  • Postfix邮件发送小问题总结

    博客园 :当前访问的博文已被密码保护 请输入阅读密码: Original: https://www.cnblogs.com/kerrycode/p/15321413.htmlAut…

    技术杂谈 2023年5月31日
    085
  • jobs 命令

    jobs命令 显示了当前 shell 环境中已启动的作业状态。如果 JobID 参数没有指定特定作业,就显示所有的活动的作业的状态信息。如果报告了一个作业的终止,shell 从当前…

    技术杂谈 2023年5月31日
    0118
  • office 电话激活

    https://www.aihao.cc/plugin.php?id=webact Original: https://www.cnblogs.com/jifeng/p/16026…

    技术杂谈 2023年5月30日
    088
  • PHP获取毫秒时间戳

    //获取毫秒时间 function microsecond() { $t = explode(" ", microtime()); $microsecond =…

    技术杂谈 2023年5月31日
    0109
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球