TLog 是一个轻量级的日志框架,主要用于分布式链路跟踪和可观察性,帮助开发者快速定位问题、跟踪请求链路,提升系统的可维护性和可观测性。
1. TLog 的核心功能
功能 | 说明 |
---|---|
链路追踪 | 在分布式系统中跟踪每个请求的完整路径,帮助定位故障节点。 |
日志标识追踪 | 在每条日志中自动添加唯一的TraceId,方便关联分析。 |
简单易用 | 开箱即用,无需复杂配置,易于集成到现有项目中。 |
高性能 | 对系统性能影响较小,适合高并发场景。 |
支持 MDC | 集成 Logback MDC,能够自动将 TraceId 注入到日志上下文中。 |
链路可视化 | 可以通过图形化界面展示请求链路。 |
2. TLog 的应用场景
-
分布式系统链路追踪
- 在微服务架构中,跟踪一个请求在多个服务之间的调用路径。
-
问题排查与定位
- 快速定位故障节点,减少排查时间。
-
统一日志标识
- 统一使用 TraceId 标识日志,便于日志检索和聚合分析。
-
性能监控
- 监控每个链路的耗时,识别性能瓶颈。
3. TLog 架构原理
-
TraceId 生成
- 每次请求进入系统时,TLog 自动生成一个全局唯一的 <code>TraceId</code>。
- <code>TraceId</code> 会在整个调用链路中进行传递。
-
日志记录
- TLog 将 <code>TraceId</code> 注入到日志上下文(MDC)中,使每条日志都携带该标识。
-
上下游传递
- 在服务之间通过 HTTP Header 或 RPC 调用将 <code>TraceId</code> 进行传递。
-
日志输出
- 在日志文件中输出包含 <code>TraceId</code> 的日志信息。
-
可视化
- 通过第三方工具(如 ELK、SkyWalking)进行日志分析和链路展示。
4. 快速上手 TLog
4.1 添加依赖
Maven 依赖:
<dependency>
<groupId>com.yomahub</groupId>
<artifactId>tlog-core</artifactId>
<version>1.3.2</version>
</dependency>
<dependency>
<groupId>com.yomahub</groupId>
<artifactId>tlog-spring-boot-starter</artifactId>
<version>1.3.2</version>
</dependency>
4.2 配置 TLog
application.yml 配置示例:
tlog:
pattern: "${traceId}" # 日志输出的 TraceId 格式
idGeneratorClass: com.yomahub.tlog.id.DefaultIdGenerator # TraceId 生成器
4.3 使用示例
Main.java
import com.yomahub.tlog.core.annotation.TLog;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class TLogDemo {
private static final Logger logger = LoggerFactory.getLogger(TLogDemo.class);
@TLog
public void processRequest() {
logger.info("开始处理请求");
logger.info("正在执行业务逻辑...");
logger.info("请求处理完成");
}
public static void main(String[] args) {
TLogDemo demo = new TLogDemo();
demo.processRequest();
}
}
日志输出示例:
2024-01-03 14:00:12 [main] INFO TLogDemo - [TRACEID:123e4567-e89b-12d3-a456-426614174000] 开始处理请求
2024-01-03 14:00:12 [main] INFO TLogDemo - [TRACEID:123e4567-e89b-12d3-a456-426614174000] 正在执行业务逻辑...
2024-01-03 14:00:12 [main] INFO TLogDemo - [TRACEID:123e4567-e89b-12d3-a456-426614174000] 请求处理完成
5. TLog 与其他工具对比
特性 | TLog | SkyWalking | Zipkin |
---|---|---|---|
易用性 | ✅ 简单集成 | ❌ 较复杂 | ❌ 较复杂 |
性能开销 | ✅ 较小 | ❌ 较大 | ❌ 较大 |
日志聚合 | ✅ 支持 | ✅ 支持 | ✅ 支持 |
链路可视化 | ❌ 需借助第三方工具 | ✅ 内置 | ✅ 内置 |
场景 | ✅ 轻量级服务 | ✅ 全链路追踪 | ✅ 全链路追踪 |
6. TLog 优缺点
✅ 优点:
- 简单易用,开箱即用。
- 日志清晰可读,方便排查问题。
- 性能开销小,适合高并发场景。
- 支持自定义 TraceId 生成规则。
❌ 缺点:
- 没有内置的链路可视化界面,需要依赖第三方工具。
- 适合中小型项目,大规模复杂分布式场景可能存在不足。
7. 总结
- TLog 是一款轻量级日志追踪工具,特别适合需要简单链路跟踪和日志标识的项目。
- 在中小型分布式系统中,可以有效帮助开发者定位问题。
- 在复杂分布式架构中,可以结合 ELK 或 SkyWalking 进行更全面的监控和分析。
8. 推荐学习路线
- 初步使用:集成 TLog,了解 TraceId 在日志中的传播。
- 自定义 TraceId:实现自定义 TraceId 生成器。
- 结合可视化工具:将 TLog 日志集成到 ELK、SkyWalking 等工具中。
- 性能优化:分析在高并发环境下 TLog 的性能表现。
最新评论
注册很麻烦