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

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

公众号新闻

点击上方“芋道源码”,选择“设为星标

管她前浪,还是后浪?

能浪的浪,才是好浪!

每天 10:33 更新文章,每天掉亿点点头发...

源码精品专栏

 
来源: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>  
    <appender name="stdout" class="org.apache.log4j.ConsoleAppender">  
        <!--替换成AspectLog4jPatternLayout-->  
        <layout class="com.yomahub.tlog.core.enhance.log4j.AspectLog4jPatternLayout">  
            <param name="ConversionPattern" value="%d{yyyy-MM-dd HH:mm:ss,SSS} [%p] %m  >> %c:%L%n"/>  
        </layout>  
    </appender>  
    <appender name="fileout" class="org.apache.log4j.DailyRollingFileAppender">  
        <param name="File" value="./logs/test.log"/>  
        <!--替换成AspectLog4jPatternLayout-->  
        <layout class="com.yomahub.tlog.core.enhance.log4j.AspectLog4jPatternLayout">  
            <param name="ConversionPattern" value="%d{yyyy-MM-dd HH:mm:ss,SSS} [%p] %m  >> %c:%L%n"/>  
        </layout>  
    </appender>  
    <root>  
        <priority value="info" />  
        <appender-ref ref="stdout"/>  
        <appender-ref ref="fileout"/>  
    </root>  
</log4j:configuration>

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

<?xml version="1.0" encoding="UTF-8"?>  
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">  
<log4j:configuration>  
    <appender name="stdout" class="org.apache.log4j.ConsoleAppender">  
        <layout class="org.apache.log4j.PatternLayout">  
            <param name="ConversionPattern" value="%d{yyyy-MM-dd HH:mm:ss,SSS} [%p] %m  >> %c:%L%n"/>  
        </layout>  
    </appender>  
    <appender name="fileout" class="org.apache.log4j.DailyRollingFileAppender">  
        <param name="File" value="./logs/log4j-dubbo-provider.log"/>  
        <layout class="org.apache.log4j.PatternLayout">  
            <param name="ConversionPattern" value="%d{yyyy-MM-dd HH:mm:ss,SSS} [%p] %m  >> %c:%L%n"/>  
        </layout>  
    </appender>  
  
    <!--这里替换成AspectLog4jAsyncAppender-->  
    <appender name="asyncFileout" class="com.yomahub.tlog.core.enhance.log4j.async.AspectLog4jAsyncAppender">  
        <appender-ref ref="fileout"/>  
    </appender>  
  
    <root>  
        <priority value="info" />  
        <appender-ref ref="stdout"/>  
        <appender-ref ref="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**



欢迎加入我的知识星球,一起探讨架构,交流源码。加入方式,长按下方二维码噢

已在知识星球更新源码解析如下:

最近更新《芋道 SpringBoot 2.X 入门》系列,已经 101 余篇,覆盖了 MyBatis、Redis、MongoDB、ES、分库分表、读写分离、SpringMVC、Webflux、权限、WebSocket、Dubbo、RabbitMQ、RocketMQ、Kafka、性能测试等等内容。

提供近 3W 行代码的 SpringBoot 示例,以及超 4W 行代码的电商微服务项目。

获取方式:点“在看”,关注公众号并回复 666 领取,更多内容陆续奉上。

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

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

微信扫码关注该文公众号作者

戳这里提交新闻线索和高质量文章给我们。
相关阅读
很多人非常好奇的蒙氏婴幼儿环境、活动及互动,今天带大家一探究竟!畅游法国(23)-王国南大门连花清瘟抢不到,别纠结,这类中成药,都有非常好的疗效!更快更强!EfficientFormerV2来了!一种新的轻量级视觉Transformer真的好用!这些值得一买再买的衣物护理小神器,可以唤醒你的衣橱!利用 Nacos 实现了一个动态化线程池,非常实用!分布式追踪与监控:Skywalking介绍Galvatron项目原作解读:大模型分布式训练神器,一键实现高效自动并行香港中文大学(深圳)数据科学学院招聘博士后 - 分布式优化和机器学习方向分布式实时日志分析解决方案 ELK 部署架构工农红军每月有10几塊大洋吗这果子真神奇!心事重、睡不着的人吃一点,养心补血又健脾,非常好!聊一聊分布式锁的设计模型无忧买房|Lexington单家庭房出售,高评分学区,近I-95高速和镇中心,生活条件非常好!《万里归途》:好看,好看,非常好看!不愧是全世界女人共同的梦想!好用!确实很好用!发现一款更轻量级的权限框架,十分钟就能快速上手,yyds分布式实时日志:ELK 的部署架构方案【庭院种菜】蘑菇土种菜的潜在危害马狼,兔狼,黑狼最小可行架构注意事项:必须考虑分布式处理和数据的位置​靠实力成为披萨界的逆袭,五种口味尽收眼底 芳香四溢软糯拉丝,十分钟在家即享西餐美味张文宏:疫苗为我们带来了非常好的基础免疫BBC高分纪录片《俄罗斯全史》,信息量大,非常好看!MySQL 分布式事务的“路”与“坑”VLDB 2023 | 北大河图发布分布式训练神器Galvatron, 一键实现大模型高效自动并行换掉 VMware ?轻量级虚拟机,横空出世!JetBrains Fleet公测,下一代轻量级全能IDE上科大团队开发了一种面向未来光学AI的节能、轻量级、深度学习算法亚马逊的分布式计算宣言万水千山帝王蝶VLDB 2023 | 北大河图发布分布式训练神器Galvatron,一键实现大模型高效自动并行深入理解Pytorch中的分布式训练买了个家务神器,我妈开视频给家族群显摆!但真的好用!大规模GNN如何学习?北邮最新《分布式图神经网络训练》综述,35页pdf阐述分布式GNN训练算法和系统
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。