最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Springboot接口日志加入鏈路追蹤traceId方式

 更新時間:2025年08月15日 09:38:17   作者:Geek-SX  
文章介紹通過添加依賴、配置logback-spring.xml、使用@LogTrace注解和LogTraceAspect切面實現(xiàn)請求日志追蹤,測試時日志中可顯示traceId

Springboot接口日志加入鏈路追蹤traceId

1.注解 LogTrace

package com.bt.springboot.common.annotation;

import java.lang.annotation.*;

/**
 * 鏈路追蹤
 *
 * @author
 */
@Target({ElementType.METHOD,ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface LogTrace {
}

2.切面 LogTraceAspect

package com.bt.springboot.common.aspect;

import lombok.extern.slf4j.Slf4j;
import org.aspectj.lang.ProceedingJoinPoint;
import org.aspectj.lang.annotation.Around;
import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.Pointcut;
import org.slf4j.MDC;
import org.springframework.stereotype.Component;

import java.util.UUID;

/**
 * 鏈路追蹤
 *
 * @author
 */
@Aspect
@Component
@Slf4j
public class LogTraceAspect {

    /**
	 * 與 logback-spring.xml 中的變量一致
     */
    private static final String TRACE_ID = "traceId";

    /**
     * 定義切點 切點為
     */
    @Pointcut("@within(com.bt.springboot.common.annotation.LogTrace)")
    public void printLog(){
    }

    /**
     * 環(huán)繞通知
     */
    @Around(value = "printLog()")
    public Object webLogAround(ProceedingJoinPoint joinPoint) throws Throwable {
        // 方法執(zhí)行前加上鏈路號
        String traceId = UUID.randomUUID().toString().replaceAll("-", "");
        MDC.put(TRACE_ID, traceId);
        Object proceed = joinPoint.proceed();
        MDC.remove(TRACE_ID);
        return proceed;
    }
}

3.添加依賴

<!-- 鏈路追蹤 -->
        <dependency>
            <groupId>org.apache.skywalking</groupId>
            <artifactId>apm-toolkit-logback-1.x</artifactId>
            <version>8.0.1</version>
        </dependency>

4.修改logback-spring.xml

<appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
        <!--
         <encoder>:對日志進行格式化。
         <target>:字符串System.out(默認)或者System.err
         -->
        <encoder class="ch.qos.logback.core.encoder.LayoutWrappingEncoder">
            <layout class="org.apache.skywalking.apm.toolkit.log.logback.v1.x.mdc.TraceIdMDCPatternLogbackLayout">
                <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%X{traceId}] [%-5level] %logger{50} - %msg%n</pattern>
            </layout>
        </encoder>
    </appender>

5.測試 在類或方法上加上注解@LogTrace

package com.bt.springboot.web.controller;

import com.bt.springboot.common.annotation.LogTrace;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

import java.util.ArrayList;
import java.util.List;

/**
 * @author zkx
 * @Date 2022/4/8 11:36
 */
@LogTrace
@Slf4j
@RestController
public class TestController {

	@GetMapping("/test")
	public void test(){
		log.info("info");
	}
}

  • 發(fā)送請求 日志可查看到traceId

總結

以上為個人經驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關文章

  • springboot 多環(huán)境切換的方法

    springboot 多環(huán)境切換的方法

    這篇文章主要介紹了springboot 多環(huán)境切換的方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-08-08
  • JDK8安裝與配置實踐超詳細指南

    JDK8安裝與配置實踐超詳細指南

    本文詳細介紹了在Windows?64位系統(tǒng)上安裝和配置JDK8的步驟,包括JDK8下載、環(huán)境變量設置及安裝驗證,同時提供了JDK8新特性如Lambda表達式、StreamAPI等的概覽,旨在幫助Java開發(fā)者有效利用JDK8新特性進行開發(fā),需要的朋友可以參考下
    2024-10-10
  • 輕松掌握Java適配器模式

    輕松掌握Java適配器模式

    這篇文章主要幫助大家輕松掌握Java適配器模式,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-09-09
  • Java回溯法解決全排列問題流程詳解

    Java回溯法解決全排列問題流程詳解

    從n個不同元素中任取m(m≤n)個元素,按照一定的順序排列起來,叫做從n個不同元素中取出m個元素的一個排列。當m=n時所有的排列情況叫全排列。這篇文章主要介紹了Java回溯法解決全排列問題
    2022-10-10
  • java 垃圾回收機制以及經典垃圾回收器詳解

    java 垃圾回收機制以及經典垃圾回收器詳解

    這篇文章主要介紹了java 垃圾回收機制以及經典垃圾回收器詳解,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-07-07
  • MyBatis?Generator生成數(shù)據庫模型實現(xiàn)示例

    MyBatis?Generator生成數(shù)據庫模型實現(xiàn)示例

    這篇文章主要為大家介紹了MyBatis?Generator生成數(shù)據庫模型實現(xiàn)示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-12-12
  • Java?@Scheduled定時任務不執(zhí)行解決辦法

    Java?@Scheduled定時任務不執(zhí)行解決辦法

    這篇文章主要給大家介紹了關于Java?@Scheduled定時任務不執(zhí)行解決的相關資料,當@Scheduled定時任務不執(zhí)行時可以根據以下步驟進行排查和解決,需要的朋友可以參考下
    2023-10-10
  • SpringBoot如何優(yōu)雅的整合Swagger Api自動生成文檔

    SpringBoot如何優(yōu)雅的整合Swagger Api自動生成文檔

    在多人協(xié)作的開發(fā)過程中,API文檔不僅可以減少等待,也能保證開發(fā)的持續(xù)進行,這篇文章主要給大家介紹了關于SpringBoot如何優(yōu)雅的整合Swagger Api自動生成文檔的相關資料,需要的朋友可以參考下
    2021-07-07
  • idea開啟mybatis控制臺SQL日志打印的代碼示例

    idea開啟mybatis控制臺SQL日志打印的代碼示例

    本文主要介紹了idea開啟mybatis控制臺SQL日志打印的方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-12-12
  • 詳解Spring Data JPA系列之投影(Projection)的用法

    詳解Spring Data JPA系列之投影(Projection)的用法

    本篇文章主要介紹了詳解Spring Data JPA系列之投影(Projection)的用法,具有一定的參考價值,有興趣的可以了解一下
    2017-07-07

最新評論

龙陵县| 湘阴县| 剑川县| 黄平县| 手游| 楚雄市| 南召县| 濮阳市| 镇宁| 奉新县| 澜沧| 安吉县| 聂拉木县| 西昌市| 晋中市| 平舆县| 盐津县| 曲靖市| 墨竹工卡县| 芦山县| 读书| 阜平县| 万荣县| 龙井市| 合肥市| 嘉鱼县| 西华县| 新余市| 讷河市| 福州市| 确山县| 庄河市| 青河县| 白玉县| 郑州市| 永新县| 高雄市| 昭通市| 项城市| 伊宁市| 宜章县|