[英]How can I create a Spring sleuth application without 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.