乐于分享
好东西不私藏

一个轻量级的分布式日志标记追踪神器,十分钟接入,非常好用!

一个轻量级的分布式日志标记追踪神器,十分钟接入,非常好用!

👉 这是一个或许对你有用的社群

🐱 一对一交流/面试小册/简历优化/求职解惑,欢迎加入芋道快速开发平台知识星球。下面是星球提供的部分资料:

👉这是一个或许对你有用的开源项目

国产 Star 破 10w+ 的开源项目,前端包括管理后台 + 微信小程序,后端支持单体和微服务架构。

功能涵盖 RBAC 权限、SaaS 多租户、数据权限、商城、支付、工作流、大屏报表、微信公众号、CRM 等等功能:

  • Boot 仓库:https://gitee.com/zhijiantianya/ruoyi-vue-pro
  • Cloud 仓库:https://gitee.com/zhijiantianya/yudao-cloud
  • 视频教程:https://doc.iocoder.cn
【国内首批】支持 JDK 21 + SpringBoot 3.2.2、JDK 8 + Spring Boot 2.7.18 双版本 
来源:gitee.com/dromara/TLog

TLog简介

1、TLog通过对日志打标签完成企业级微服务的日志追踪。它不收集日志,使用简单, 产生全局唯一的追踪码。除了追踪码以外,TLog还支持SpanId和上下游服务信息 标签的追加。

2、为用户使用方便而设计,提供完全零侵入式接入方式,自动探测项目中使用的RPC框架和日志框架, 进行字节码的注入完成系统级日志标签的追加。

3、TLog适配了市面上主流的RPC框架:dubbo,dubbox,spring cloud的open feign。

4、TLog提供Javaagent,字节码注入,日志框架适配三种接入模式,无论是哪一种,都保证了无性能损耗。支持在业务异步线程,线程池, 日志异步输出这几种场景下追踪不中断。

基于 Spring Boot + MyBatis Plus + Vue & Element 实现的后台管理系统 + 用户小程序,支持 RBAC 动态权限、多租户、数据权限、工作流、三方登录、支付、短信、商城等功能

  • 项目地址:https://github.com/YunaiV/ruoyi-vue-pro
  • 视频教程:https://doc.iocoder.cn/video/

项目特性

1、通过对日志打标签完成轻量级微服务日志追踪

2、提供三种接入方式:javaagent完全无侵入接入,字节码一行代码接入,基于配置文件的接入

3、支持常见的log4j,log4j2,logback三大日志框架,并提供自动检测,完成适配

4、支持Spring Cloud Gateway和Soul网关

5、适配HttpClient和Okhttp的http调用标签传递

6、支持三种任务框架,JDK的TimerTask,Quartz,XXL-JOB

7、支持日志标签的自定义模板的配置,提供多个系统级埋点标签的选择

8、支持异步线程的追踪,包括线程池,多级异步线程等场景

9、几乎无性能损耗,快速稳定,经过压测,损耗在0.01%

基于 Spring Cloud Alibaba + Gateway + Nacos + RocketMQ + Vue & Element 实现的后台管理系统 + 用户小程序,支持 RBAC 动态权限、多租户、数据权限、工作流、三方登录、支付、短信、商城等功能

  • 项目地址:https://github.com/YunaiV/yudao-cloud
  • 视频教程:https://doc.iocoder.cn/video/

安装TLog

TLog对springboot和spring native提供了2种不同的依赖,此种方式只需依赖一个包,必须的包会传递依赖进来。

springboot依赖

<dependency>
<groupId>com.yomahub</groupId>
<artifactId>tlog-all-spring-boot-starter</artifactId>
<version>1.3.4</version>
</dependency>

spring native依赖

<dependency>  
  <groupId>com.yomahub</groupId>  
  <artifactId>tlog-all</artifactId>  
  <version>1.3.4</version>  
</dependency>

日志框架适配方式(举例Log4j框架适配器)

同步日志:只需要把layout的实现类换掉就可以了

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE log4j:configuration SYSTEM"log4j.dtd">
<log4j:configuration>
<appendername="stdout"class="org.apache.log4j.ConsoleAppender">
<!--替换成AspectLog4jPatternLayout-->
<layoutclass="com.yomahub.tlog.core.enhance.log4j.AspectLog4jPatternLayout">
<paramname="ConversionPattern"value="%d{yyyy-MM-dd HH:mm:ss,SSS} [%p] %m  >> %c:%L%n"/>
</layout>
</appender>
<appendername="fileout"class="org.apache.log4j.DailyRollingFileAppender">
<paramname="File"value="./logs/test.log"/>
<!--替换成AspectLog4jPatternLayout-->
<layoutclass="com.yomahub.tlog.core.enhance.log4j.AspectLog4jPatternLayout">
<paramname="ConversionPattern"value="%d{yyyy-MM-dd HH:mm:ss,SSS} [%p] %m  >> %c:%L%n"/>
</layout>
</appender>
<root>
<priorityvalue="info" />
<appender-refref="stdout"/>
<appender-refref="fileout"/>
</root>
</log4j:configuration>

异步日志:只要把appender的实现类替换掉就行了

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE log4j:configuration SYSTEM"log4j.dtd">
<log4j:configuration>
<appendername="stdout"class="org.apache.log4j.ConsoleAppender">
<layoutclass="org.apache.log4j.PatternLayout">
<paramname="ConversionPattern"value="%d{yyyy-MM-dd HH:mm:ss,SSS} [%p] %m  >> %c:%L%n"/>
</layout>
</appender>
<appendername="fileout"class="org.apache.log4j.DailyRollingFileAppender">
<paramname="File"value="./logs/log4j-dubbo-provider.log"/>
<layoutclass="org.apache.log4j.PatternLayout">
<paramname="ConversionPattern"value="%d{yyyy-MM-dd HH:mm:ss,SSS} [%p] %m  >> %c:%L%n"/>
</layout>
</appender>

<!--这里替换成AspectLog4jAsyncAppender-->
<appendername="asyncFileout"class="com.yomahub.tlog.core.enhance.log4j.async.AspectLog4jAsyncAppender">
<appender-refref="fileout"/>
</appender>

<root>
<priorityvalue="info" />
<appender-refref="stdout"/>
<appender-refref="asyncFileout"/>

任务框架支持(举例XXL-JOB框架)

从1.3.0版本开始,TLog对开源框架XXL-JOB作了支持。

在springboot环境下,你无需作任何改动。只需引入依赖包即可生效。

而在spring native环境下,你需要额外配置一行

<bean class="com.yomahub.tlog.springboot.lifecircle.TLogXxljobEnhanceInit"/>

TLog架构图

而在spring native环境下,你需要额外配置一行

开源地址:**https://gitee.com/dromara/TLog**


欢迎加入我的知识星球,全面提升技术能力。

👉 加入方式,长按”或“扫描”下方二维码噢

星球的内容包括:项目实战、面试招聘、源码解析、学习路线。

文章有帮助的话,在看,转发吧。

谢谢支持哟 (*^__^*)

本站文章均为手工撰写未经允许谢绝转载:夜雨聆风 » 一个轻量级的分布式日志标记追踪神器,十分钟接入,非常好用!

猜你喜欢

  • 暂无文章