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

一生一芯学习:PA:输入输出

睬奥乃级1、pom.xml 依赖

复制代码

org.springframework.boot

spring-boot-starter-web

org.springframework.boot

spring-boot-starter-test

test

org.springframework.boot

spring-boot-starter-logging

org.projectlombok

lombok

1.16.10

复制代码

2、整合logback,打印日志,logback.xml (日志配置文件)

关键代码:[traceId:%X{traceId}],traceId是通过拦截器里MDC.put(traceId, tid)添加。

复制代码

[traceId:%X{traceId}] %d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n

${log}/%d{yyyy-MM-dd}.log

30

[traceId:%X{traceId}] %d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n

10MB

复制代码

3、application.yml指定logback.xml配置目录

logging:

config: classpath:logback.xml

4、异步线程的跟踪ID链路追踪

业务逻辑是基于线程数据的传递进行处理,主线程传递线程ID到子线程。处理方式:重写线程池的execute(*)、submit(*)方法。

复制代码

public final class MyThreadPoolTaskExecutor extends ThreadPoolTaskExecutor {

public MyThreadPoolTaskExecutor() {

super();

}

@Override

public void execute(Runnable task) {

super.execute(TraceIdUtil.wrap(task, MDC.getCopyOfContextMap()));

}

@Override

public Future submit(Callable task) {

return super.submit(TraceIdUtil.wrap(task, MDC.getCopyOfContextMap()));

}

@Override

public Future submit(Runnable task) {

return super.submit(TraceIdUtil.wrap(task, MDC.getCopyOfContextMap()));

}

}

复制代码

4、异步定时任务线程接口ScheduledExecutorService的日志链路追踪。在执行前,执行后进行跟踪ID的生成和删除。

复制代码

@Bean(name = "scheduledExecutorService")

protected ScheduledExecutorService scheduledExecutorService() {

return new ScheduledThreadPoolExecutor(corePoolSize,

new BasicThreadFactory.Builder().namingPattern("schedule-pool-%d").daemon(true).build(),

new ThreadPoolExecutor.CallerRunsPolicy()) {

@Override

protected void beforeExecute(Thread thread, Runnable runnable) {

super.beforeExecute(thread, runnable);

// 为定时任务生成一个 traceId

TraceIdUtil.setTraceId();

// 可选:添加任务标识

System.out.println("Scheduled task starting with traceId: " + TraceIdUtil.getTraceId());

}

@Override

protected void afterExecute(Runnable r, Throwable t) {

super.afterExecute(r, t);

Threads.printException(r, t);

TraceIdUtil.remove();

}

};

}

http://www.jsqmd.com/news/425124/

相关文章:

  • 初中数学线上培训实测!4家机构盘点,提分不踩坑(家长必看) - 品牌测评鉴赏家
  • 孩子皮肤敏感易泛红适配面霜品牌推荐 - 速递信息
  • 中考数学冲刺|实测!不踩坑、真提分,家长直接抄作业 - 品牌测评鉴赏家
  • ZKEACMS:基于ASP.Net Core开发的开源免费内容管理系统
  • 基于MATLAB/Simulink的电动车制动能量回收控制策略搭建及整车参数分析
  • 【2026 OPC计划】3分钟部署你的AI助理-CoPaw
  • ​每周质量报告丨起泡胶、捏捏乐、水晶泥……警惕网红玩具背后的“隐形伤害”央视新闻2026-03-01 15:40北京中央广播电视总台央视新闻官方账号​——为什么总是玩具问题不断?
  • 【2026 OPC计划】AI的贾维斯时刻-OpenClaw
  • 小学数学奥数线上班哪家效果好?2026实测,家长直接抄作业 - 品牌测评鉴赏家
  • 【2026 OPC计划】3分钟部署OpenClaw(Mac/Windows/阿里云)
  • 初中数学线上培训机构实测!2026年避坑指南,家长必看 - 品牌测评鉴赏家
  • 解析AI原生应用中语音识别的核心要点
  • SPI接口作为Slave的Verilog代码,功能正确且注释详细
  • 实测避坑|小学数学竞赛线上课,家长闭眼冲不踩雷 - 品牌测评鉴赏家
  • python字典切片、取前多少个、后多少个
  • 小学数学辅导平台大揭秘,选对平台轻松逆袭 - 品牌测评鉴赏家
  • PyTorch神经网络组件之ReLU
  • usb拓展坞
  • LangGraph4j 学习系列(9)-人机协同(human_in_the_loop)
  • 高透光汽车膜核心参数解读+2026优质品牌推荐 - 速递信息
  • SpringBoot基于微信小程序的校园跑腿小程序
  • springboot基于微信小程序的校园综合服务
  • FastAPI架构深度解析:依赖注入、后台任务与WebSocket实战
  • 2026青木川古镇民宿性价比口碑排名TOP10(权威打分)|青云客栈稳居第一 - 一个呆呆
  • 奥数机构水太深,2026实测3家靠谱款,家长闭眼抄作业不踩坑 - 品牌测评鉴赏家
  • if language is ONLY for the sounds for chating
  • 2026最新!初中数学辅导机构,家长选课不踩坑(全程干货无广) - 品牌测评鉴赏家
  • 小学数学奥数学习平台哪个比较系统?平台实测,家长闭眼避坑 - 品牌测评鉴赏家
  • 2026中考数学辅导机构|家长必看!不花冤枉钱,精准提分更省心 - 品牌测评鉴赏家
  • 避坑!2026小学数学线上培训机构实测,这3家真的值得报 - 品牌测评鉴赏家