0
点赞
收藏
分享

微信扫一扫

springboot整合tlog进行链路追踪、接口耗时统计


本文以两个独立服务为例,http使用hutool工具

  1. 引入依赖(provider和consumer)

<dependency>
<groupId>com.yomahub</groupId>
<artifactId>tlog-all-spring-boot-starter</artifactId>
<version>1.5.0</version>
</dependency>
<dependency>
<groupId>cn.hutool</groupId>
<artifactId>hutool-all</artifactId>
<version>5.8.11</version>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>

  1. 日志配置(provider和consumer)

<?xml version="1.0" encoding="UTF-8"?>
<configuration debug="false">
<springProperty name="APP_NAME" source="spring.application.name"/>
<property name="LOG_HOME" value="./logs" />


<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
<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>
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
</encoder>
</appender>

<!-- 这里替换成AspectLogbackAsyncAppender -->
<appender name="ASYNC_FILE" class="com.yomahub.tlog.core.enhance.logback.async.AspectLogbackAsyncAppender">
<discardingThreshold>0</discardingThreshold>
<queueSize>2048</queueSize>
<includeCallerData>true</includeCallerData>
<appender-ref ref="FILE"/>
</appender>

<root level="INFO">
<appender-ref ref="STDOUT" />
<appender-ref ref="ASYNC_FILE" />`在这里插入代码片`
</root>
</configuration>

  1. 编码
    provider:

@SpringBootApplication
@RestController
@Slf4j
public class SpringbootTlogApplication {

public static void main(String[] args) {
SpringApplication.run(SpringbootTlogApplication.class, args);
}


@GetMapping("request")
public void aa(HttpServletRequest request) {
log.info("-----------请求---------");
}

}

consumer:

package com.tlog.springboottlog.controller;

import cn.hutool.http.HttpRequest;
import com.yomahub.tlog.hutoolhttp.TLogHutoolhttpInterceptor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

/**
* @author CaiDingNu
* @desc
* @date 2023/01/17 15:47
*/
@RestController
@Slf4j
public class TestController {
static final TLogHutoolhttpInterceptor tLogHutoolhttpInterceptor = new TLogHutoolhttpInterceptor();

@GetMapping("a")
public void aa(Integer name) {
log.info("开始请求---------------------------");
String s = HttpRequest.get("http://127.0.0.1:911/user/request").addInterceptor(tLogHutoolhttpInterceptor).execute().body();
log.info("请求结束-------------------------{}",s);

}
}

  1. 结果
    在logs文件夹下查看日志文件

consumer:

springboot整合tlog进行链路追踪、接口耗时统计_java


provider:

springboot整合tlog进行链路追踪、接口耗时统计_java_02

官方文档:​​https://tlog.yomahub.com/​​​ gitee:​​https://gitee.com/dromara/TLog​​


举报

相关推荐

0 条评论