TLog:十分钟接入,轻量级的分布式日志标记追踪神器

原创
09/17 14:32
阅读数 403

随着微服务盛行,很多公司都把系统按照业务边界拆成了很多微服务,在排错查日志的时候。因为业务链路贯穿着很多微服务节点,导致定位某个请求的日志以及上下游业务的日志会变得有些困难。

这时候很多童鞋会开始考虑上SkyWalking,Pinpoint等分布式追踪系统来解决,基于OpenTracing规范,而且通常都是无侵入性的,并且有相对友好的管理界面来进行链路Span的查询。

但是搭建分布式追踪系统,熟悉以及推广到全公司的系统需要一定的时间周期,而且当中涉及到链路span节点的存储成本问题,全量采集还是部分采集?如果全量采集,就以SkyWalking的存储来举例,ES集群搭建至少需要5个节点。这就需要增加服务器成本。况且如果微服务节点多的话,一天下来产生几十G上百G的数据其实非常正常。如果想保存时间长点的话,也需要增加服务器磁盘的成本。

当然分布式追踪系统是一个最终的解决方案,如果你目前还没有使用分布式追踪系统,那么今天 Gitee 所介绍的这款开源工具一定是一个不错的选择。

**项目名称:**TLog

**项目作者:**bryan31

**开源许可协议:**MIT

项目地址:https://gitee.com/bryan31/TLog

项目简介

TLog是一个轻量级的分布式日志标记追踪神器,10分钟即可接入,自动对日志打标签完成微服务的链路追踪。支持log4j,log4j2,logback三大日志框架,支持dubbo,dubbox,springcloud三大RPC框架。

项目特点

  • 通过对日志打标签完成轻量级微服务日志追踪
  • 对业务代码无侵入式设计,使用简单,10分钟即可接入
  • 支持常见的log4j,log4j2,logback三大日志框架,并提供自动检测,完成适配
  • 支持dubbo,dubbox,springcloud三大RPC框架
  • 支持日志标签的自定义模板的配置
  • 几乎无性能损耗

使用效果

这里以dubbo+log4j为例,Consumer端代码

日志打印:

2020-09-16 18:12:56,748 \[WARN\] \[TLOG\]重新生成traceId\[7161457983341056\] >> com.yomahub.tlog.web.TLogWebInterceptor:39

2020-09-16 18:12:56,763 \[INFO\] <7161457983341056> logback-dubbox-consumer:invoke method sayHello,name=jack >> com.yomahub.tlog.example.dubbox.controller.DemoController:22 

2020-09-16 18:12:56,763 \[INFO\] <7161457983341056> 测试日志aaaa >> com.yomahub.tlog.example.dubbox.controller.DemoController:23 

2020-09-16 18:12:56,763 \[INFO\] <7161457983341056> 测试日志bbbb >> com.yomahub.tlog.example.dubbo

Provider代码: 日志打印:

2020-09-16 18:12:56,854 \[INFO\] <7161457983341056> logback-dubbox-provider:invoke method sayHello,name=jack >> com.yomahub.tlog.example.dubbo.service.impl.DemoServiceImpl:15 

2020-09-16 18:12:56,854 \[INFO\] <7161457983341056> 测试日志cccc >> com.yomahub.tlog.example.dubbo.service.impl.DemoServiceImpl:16 

2020-09-16 18:12:56,854 \[INFO\] <7161457983341056> 测试日志dddd >> com.yomahub.tlog.example.dubbo.service.impl.DemoServiceImpl:17

可以看到,经过简单接入后,各个微服务之间每个请求有一个全局唯一的traceId贯穿其中,对所有的日志输出都能生效,这下定位某个请求的日志链就变得轻松了。

开发者说

TLog提供了一种最简单的方式来解决日志追踪问题,它不收集日志,也不需要另外的存储空间,它只是自动的对你的日志进行打标签,自动生成TraceId贯穿你微服务的一整条链路。并且提供上下游节点信息。适合中小型企业以及想快速解决日志追踪问题的公司项目使用。

为此我为了TLog适配了三大日志框架,支持自动检测适配。支持dubbo,dubbox,spring cloud三大RPC框架,更重要的是,你的项目接入TLog,可能连十分钟就不需要。

如果你想了解它更多的接入和配置方式,就点击后面的链接前往项目主页吧,记得给它一个 Star 哦:https://gitee.com/bryan31/TLog

展开阅读全文
打赏
0
1 收藏
分享
加载中
更多评论
打赏
0 评论
1 收藏
0
分享
返回顶部
顶部