首页 > 其他分享 >tlog实现链路追踪

tlog实现链路追踪

时间:2023-09-30 21:04:08浏览次数:38  
标签:log void GetMapping 链路 import public tlog 追踪


tlog实现链路追踪

TLog通过对日志打标签完成企业级微服务的日志追踪。它不收集日志,使用简单, 产生全局唯一追踪码。除了追踪码,TLog还支持SpanId和上下游服务信息 标签的追加。你还可以自定义方法级别的标签,让日志的定位轻而易举

集成springboot

依赖

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

控制层

package com.tlog.springboottlog.controller;

import com.tlog.springboottlog.config.TlogConvert;
import com.yomahub.tlog.core.annotation.TLogAspect;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

import javax.servlet.http.HttpServletRequest;

/**
 * @author 蔡定努
 * @date 2023/09/06 12:59
 */
@Slf4j
@RestController
public class TestController {
    @GetMapping("request")
    public void aa(HttpServletRequest request) {
        log.info("--------完成--------------");
    }


    /**
     * 默认方式
     *
     * @author 蔡定努
     */
    @GetMapping("b")
    public void b() {
        log.info("默认方式");
    }


    /**
     * 注解带参数
     *
     * @author 蔡定努
     */
    @GetMapping("aspect")
    @TLogAspect(value = {"id", "name"}, pattern = "<-{}->", joint = "_")
    public void aspect(String id, String name) {
        log.info("加了patter和joint的示例");
    }


    /**
     * 注解,自己拼接链路
     *
     * @author 蔡定努
     */
    @GetMapping("aspect2")
    @TLogAspect(convert = TlogConvert.class)
    public void aspect2(String id, String name) {
        log.info("加了patter和joint的示例");
    }


}

logback-spring.xml

<?xml version="1.0" encoding="UTF-8"?>
<configuration debug="false">
    <property name="LOG_HOME" value="./logs" />
    <springProperty scop="context" name="APP_NAME" source="spring.application.name" defaultValue=""/>
    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
        <!--这里替换成AspectLogbackEncoder-->
        <encoder class="com.yomahub.tlog.core.enhance.logback.AspectLogbackEncoder">
            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
        </encoder>
    </appender>
    <appender name="FILE"  class="ch.qos.logback.core.rolling.RollingFileAppender">
        <File>${LOG_HOME}/${APP_NAME}.log</File>
        <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
            <FileNamePattern>${LOG_HOME}/${APP_NAME}.log.%d{yyyy-MM-dd}.%i.log</FileNamePattern>
            <MaxHistory>30</MaxHistory>
            <maxFileSize>1000MB</maxFileSize>
        </rollingPolicy>
        <!--这里替换成AspectLogbackEncoder-->
        <encoder class="com.yomahub.tlog.core.enhance.logback.AspectLogbackEncoder">
            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
        </encoder>
    </appender>

    <root level="INFO">
        <appender-ref ref="STDOUT" />
        <appender-ref ref="FILE" />
    </root>
</configuration>

如果需要打印接口耗时,配置文件中添加一下配置

tlog.enable-invoke-time-print=on

效果:

tlog实现链路追踪_logback


标签:log,void,GetMapping,链路,import,public,tlog,追踪
From: https://blog.51cto.com/caidingnu/7664961

相关文章

  • 即构「畅直播」,全链路升级的一站式直播服务
    增长放缓,买量成本上升。直播行业的野蛮生长已然是过去时。数据显示:国内直播市场耕耘已久,人口红利基本吃透,观看直播的用户群体总数的增长速率逐步放缓,疫情带来的短暂上升随着国内可靠的防疫举措施行也渐渐回落。纯获客拓新已经转化为平台之间的用户争夺。编辑编辑另一方面,随着云商开......
  • 链路追踪之Jaeger
    官方地址:https://www.jaegertracing.io/ [安装]官方提供了两个安装方式, 1.基于二进制(https://www.jaegertracing.io/download/#binaries)2.使用docker dockerrun-d--namejaeger\-eCOLLECTOR_ZIPKIN_HOST_PORT=:9411\-p6831:6831/udp\-p6832:6832......
  • 如何实现简单的分布式链路功能?
    为什么需要链路跟踪为什么需要链路跟踪?微服务环境下,服务之间相互调用,可能存在A->B->C->D->C这种复杂的服务交互,那么需要一种方法可以将一次请求链路完整记录下来,否则排查问题不好下手、请求日志也无法完整串起来。如何实现链路跟踪假设我们从用户请求接口开始,每次请求需要有......
  • 流量治理的基石——基于字节码增强的全链路流量标签透传
     作者:李来   华为云高级软件工程师一、全链路流量标签透传在微服务架构中,流量标签用于对流量进行标记和分类,能够在微服务之间实现更精细的路由、负载均衡和流控等流量治理能力。以HTTP报文为例,每一条header都可以是一条流量标签,比如x-sermant-version:v1表示通过Sermant流......
  • 一文读懂分布式追踪的历史发展点滴
    【摘要】本文介绍了可观测生态领域相关的技术——DistributedTracing(分布式追踪)【作者】李杰,专注于Java虚拟机技术、云原生技术领域的探索与研究。什么是“DistributedTracing-分布式追踪”?DistributedTracing(分布式追踪)是一种用于监测和分析分布式应用程序的技术和方法......
  • 静态路由与BFD联动实现快速检测链路状态使路由表快速收敛
     实现目的:1.默认情况,PC1和PC2之间的通信使用AR1-AR9-AR10-AR2链路通信(主链路),当AR1-AR9-AR10-AR2链路中任何一点的链路断开后,路由会以毫秒级速度切换到AR1-AR3-AR2(备链路),实现网络的连通性。2.当主链路恢复后,路由又切回到主线路。 实验前的配置基础:1.配置PC和路由器端口IP;2......
  • 使用mtrace追踪JVM堆外内存泄露
    原创:扣钉日记(微信公众号ID:codelogs),欢迎分享,非公众号转载保留此声明。简介在上篇文章中,介绍了使用tcmalloc或jemalloc定位native内存泄露的方法,但使用这个方法相当于更换了原生内存分配器,以至于使用时会有一些顾虑。经过一些摸索,发现glibc自带的ptmalloc2分配器,也提供有追踪内......
  • 16 链路聚合实验
    实验理解链路聚合的作用和配置拓扑此时存在拓扑存在环路,配置STP生成树,STP生成树通过阻塞端口破环,这样两条链路将不会工作,在此场景下有更好的方式解决,链路聚合,将GE0/0/1-3绑定为一根逻辑的链路,在传输流量时,以负载均衡的方式分担给三条链路,因为是逻辑上的一条链路,所以没有环,还......
  • 用于异构无线传感器网络的多聚合器多链路由协议(Matlab代码实现)
     ✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可私信。......
  • SpringBoot + MDC 实现全链路调用日志跟踪
    简介:MDC(MappedDiagnosticContext,映射调试上下文)是log4j、logback及log4j2提供的一种方便在多线程条件下记录日志的功能。MDC可以看成是一个与当前线程绑定的哈希表,可以往其中添加键值对。MDC中包含的内容可以被同一线程中执行的代码所访问。当前线程的子线程会继承其父线......