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

Rust/C/C++ 混合构建 - Buck构建工具一探究竟

戮潦使普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/434235/

相关文章:

  • 鸿蒙应用开发从入门到实战(五):ArkUI概述
  • 2026年3月进口艺术涂料品牌推荐,品牌资质与施工售后深度解读 - 品牌鉴赏师
  • 微信小程序端智能项目工程化实践
  • 起恶意请求。 原理详解 用户登录了 B 网站,B 网站在浏览器里设置了会话 Cookie。 用户在未退出登录的情况下访问了攻击者控制 ...
  • “你还活着吗?” “我没死,只是网卡了!”——来自分布式世界的“生死契约”
  • 2026年口碑好的全自动吨袋拆包机/粉料吨袋拆包机高口碑品牌推荐 - 品牌宣传支持者
  • AI元人文:岐金兰的局限性
  • 2026长期合作的泳池马赛克厂家怎么选 - 品牌排行榜
  • 【光照】Unity中的[光照模型]概念辨析
  • 记一次 .NET 某CRM物流行业管理系统 崩溃分析
  • 2026对标英特格(Entergris)的国产过滤器品牌推荐 - 品牌排行榜
  • va, Go, Rust, Python, Haskell等语言项目的构建。 主要特性 Buck 的执行速度是Buck的两倍,核心逻 ...
  • 能够动态推断与生成DTO是Node生态的一个重要里程碑
  • C#/.NET/.NET Core技术前沿周刊 | 第 期(年.-.)
  • 2026专业的汽车循环水处理厂家推荐 - 品牌排行榜
  • ks控制器resyncPeriod机制定时把ks apiserver内存和cpu打得很高
  • 2026旅行社定制旅游哪家服务好?真实体验分享 - 品牌排行榜
  • 2026专用泳池砖生产厂家推荐:聚焦品质与设计的行业精选 - 品牌排行榜
  • 2026年3月儿童成长奶粉品牌推荐,产能配方安全三维数据透视 - 品牌鉴赏师
  • 如何利用国产动环数据库提升数据中心运维效率?
  • AI 应用开发,不就是调个接口么?
  • 2026北京旅行社哪家靠谱?综合实力与服务口碑推荐 - 品牌排行榜
  • 工程用马赛克瓷砖一般选哪家厂家(2026年实力厂商参考) - 品牌排行榜
  • 2026防滑泳池砖生产厂家有哪些?行业实力企业盘点 - 品牌排行榜
  • 2026国内游旅行社哪家有优惠活动?最新活动指南 - 品牌排行榜
  • Vs2022 社区版创建WEBSERVICE项目
  • 2026泳池用马赛克瓷砖,一般选哪几个品牌推荐 - 品牌排行榜
  • 2026年评价高的小袋拆包机/全自动拆包机采购指南厂家怎么选 - 品牌宣传支持者
  • 2026旅行社亲子游线路规划哪家比较合理?家长实用参考 - 品牌排行榜
  • 2026年3月2D3D混合式闪测仪厂商推荐,高性能高稳定优质品牌 - 品牌鉴赏师