• TLog轻量级分布式日志标记追踪神器


    TLog简介

    1. TLog通过对日志打标签完成企业级微服务的日志追踪。它不收集日志,使用简单, 产生全局唯一的追踪码。除了追踪码以外,TLog还支持SpanId和上下游服务信息 标签的追加。
    2. 为用户使用方便而设计,提供完全零侵入式接入方式,自动探测项目中使用的RPC框架和日志框架, 进行字节码的注入完成系统级日志标签的追加。
    3. TLog适配了市面上主流的RPC框架:dubbodubboxspring cloud的open feign
    4. TLog提供Javaagent,字节码注入,日志框架适配三种接入模式,无论是哪一种,都保证了无性能损耗。支持在业务异步线程,线程池,日志异步输出这几种场景下追踪不中断。

    项目特性

    1. 通过对日志打标签完成轻量级微服务日志追踪
    2. 提供三种接入方式javaagent完全无侵入接入,字节码一行代码接入,基于配置文件的接入
    3. 支持常见的log4jlog4j2logback三大日志框架,并提供自动检测,完成适配
    4. 支持Spring Cloud GatewaySoul网关
    5. 适配HttpClientOkhttp的http调用标签传递
    6. 支持三种任务框架,JDK的TimerTaskQuartzXXL-JOB
    7. 支持日志标签的自定义模板的配置,提供多个系统级埋点标签的选择
    8. 支持异步线程的追踪,包括线程池,多级异步线程等场景
    9. 几乎无性能损耗,快速稳定,经过压测,损耗在0.01%

    安装TLog

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

    springboot依赖

    <dependency>  
      <groupId>com.yomahubgroupId>  
      <artifactId>tlog-all-spring-boot-starterartifactId>  
      <version>1.3.4version>  
    dependency>
    
    • 1
    • 2
    • 3
    • 4
    • 5

    spring native依赖

    <dependency>  
      <groupId>com.yomahubgroupId>  
      <artifactId>tlog-allartifactId>  
      <version>1.3.4version>  
    dependency>
    
    • 1
    • 2
    • 3
    • 4
    • 5

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

    • 同步日志:只需要把layout的实现类换掉就可以了
      
    DOCTYPE log4j:configuration SYSTEM "log4j.dtd">  
    <log4j:configuration>  
        <appender name="stdout" class="org.apache.log4j.ConsoleAppender">  
              
            <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"/>  
              
            <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>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 异步日志:只要把appender的实现类替换掉就行了
      
    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>  
      
          
        <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"/>
        root>  
    log4j:configuration>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26

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

    1.3.0版本开始,TLog对开源框架XXL-JOB作了支持
    springboot环境下,无需作任何改动只需引入依赖包即可生效
    而在spring native环境下需要额外配置一行

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

    TLog架构图

    202212011750705.png

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

  • 相关阅读:
    Java学习day06:面向对象基础,构造方法,成员/局部变量
    刘畊宏男孩女孩看过来!运动数据分析挖掘!(附全套代码和数据集)
    业务数据分析-常见业务指标
    HTML5期末大作业:游戏网站设计与实现——基于bootstrap响应式游戏资讯网站制作HTML+CSS+JavaScript
    无线图传模块选型参考
    uCOSIII实时操作系统 五 任务API(任务挂起与恢复)
    python文件内对应列相乘在求和
    Vert.x web 接收请求时反序列化对象 Failed to decode 如何解决?
    【zookeeper】zookeeper集群安装
    Monte Carlo Algorithms
  • 原文地址:https://blog.csdn.net/minkeyto/article/details/128144363