java traceid_SkyWalking 源码解析 —— traceId 集成到日志组件

java traceid_SkyWalking 源码解析 —— traceId 集成到日志组件摘要 原创出处 http www iocoder cn SkyWalking trace id integrate into logs 芋道源码 欢迎转载 保留摘要 谢谢 本文主要基于 SkyWalking3 2 6 正式版 1 概述本文主要分享 traceId 集成到日志组件 例如 log4j log4j2 logback 等等 我们首先看看集成的使用例子 再看看集成的实现代码

摘要: 原创出处 http://www.iocoder.cn/SkyWalking/trace-id-integrate-into-logs/ 「芋道源码」欢迎转载,保留摘要,谢谢!

本文主要基于 SkyWalking 3.2.6 正式版

1. 概述

本文主要分享 traceId 集成到日志组件,例如 log4j 、log4j2 、logback 等等。

我们首先看看集成的使用例子,再看看集成的实现代码。涉及代码如下:

369bdaaa6a461008ecc8573911f3ff6f.png

7261be63d9c3a3e2d2ff90e2268ddc4d.png

本文以 logback 1.x 为例子。

2. 使用例子

1、无需引入相应的工具包,只需启动参数带上 -javaagent:/Users/yunai/Java/skywalking/packages/skywalking-agent/skywalking-agent.jar 。

2、在 logback.xml 配置 %tid 占位符:

7ee03195812a5b3e51bd969a1915f9e4.png

3、使用 logger.info(…) ,会打印日志如下:

499f06c07d82f8349a44ec9211452cf8.png

注意,traceId 打印到每条日志里,最终需要经过例如 ELK ,收集到日志中心。

3. 实现代码

3.1 TraceIdPatternLogbackLayout

3.2 LogbackPatternConverterActivation

195efbdcf943ef50b5ac9c14f2c86492.png

org.skywalking.apm.toolkit.activation.log.logback.v1.x.PrintTraceIdInterceptor ,实现 InstanceMethodsAroundInterceptor 接口,LogbackPatternConverterActivation 的拦截器。代码如下:

#afterMethod(…) 方法,调用 ContextManager#getGlobalTraceId() 方法,使用全局链路追踪编号,而不是原有结果。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/216531.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月18日 上午11:38
下一篇 2026年3月18日 上午11:39


相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号