簡體   English   中英

如何在不使用 Sleuth 的情況下在 Spring Boot 中實現跟蹤?

[英]How can I implement Tracing in Spring Boot without using Sleuth?

我正在嘗試在登錄我的 Spring Boot 應用程序期間實現 Tracing,Sleuth 是我實現的一種選擇,而無需進行任何編碼排序或其他操作。 但我的問題是定制。 我瀏覽了 sleuth 的源代碼,發現他們正在修改日志記錄級別模式以實現跟蹤,如何在不添加 sleuth 依賴項的情況下修改日志記錄模式?

1.給項目添加依賴,

<dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-sleuth</artifactId>
             <version>1.3.3.RELEASE</version>
</dependency>

2.我有一個現有的logback-spring.xml & 在那里我不得不更改日志記錄模式。 在不更改日志模式的情況下,日志中未顯示 id,

現有模式- %date %level [%thread] %logger{10} [%file:%line] %msg%n

新模式- %date %level [%thread] %logger{10} [%file:%line] [%X{X-B3-TraceId},%X{X-B3-SpanId},%X{X-B3-ParentSpanId},%X{X-Span-Export}] %msg%n

你可以使用這樣的東西:

package com.team.monitoring;

import java.util.concurrent.TimeUnit;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import com.codahale.metrics.MetricRegistry;
import com.codahale.metrics.Slf4jReporter;

public final class MetricRegistrySingleton {

    public static final MetricRegistry metrics = new MetricRegistry();

    static {
        Logger logger = LoggerFactory.getLogger("com.team.monitoring");
        final Slf4jReporter reporter = Slf4jReporter.forRegistry(metrics).outputTo(logger).convertRatesTo(TimeUnit.SECONDS).convertDurationsTo(TimeUnit.MILLISECONDS).build();
        reporter.start(5, TimeUnit.MINUTES);
    }

    private MetricRegistrySingleton() {
        throw new AssertionError();
    }

}

通過 slf4j,您可以通過這種方式以編程方式配置記錄器,您不需要配置文件。

您的 pom.xml 必須如下所示:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>

<groupId>com.javacodegeeks</groupId>
<artifactId>slf4-spring-boot</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>

<name>slf4-spring-boot</name>
<url>http://maven.apache.org</url>

<properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>

<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter</artifactId>
        <version>1.5.3.RELEASE</version>
        <exclusions>
            <exclusion>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-logging</artifactId>
            </exclusion>
        </exclusions>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-log4j2</artifactId>
        <version>1.5.3.RELEASE</version>
    </dependency>
</dependencies>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM