• 首页 首页 icon
  • 工具库 工具库 icon
    • IP查询 IP查询 icon
  • 内容库 内容库 icon
    • 快讯库 快讯库 icon
    • 精品库 精品库 icon
    • 问答库 问答库 icon
  • 更多 更多 icon
    • 服务条款 服务条款 icon

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

武飞扬头像
靈熙雲
帮助1

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.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"/>
    </root>  
</log4j:configuration>

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

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

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

TLog架构图

学新通

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

这篇好文章是转载于:学新通技术网

  • 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
  • 本站站名: 学新通技术网
  • 本文地址: /boutique/detail/tanhcihcjj
系列文章
更多 icon
同类精品
更多 icon
继续加载