【发布时间】:2021-09-25 03:04:12
【问题描述】:
使用具有以下 gradle 依赖项的 Spring boot 来获取 Sleuth 的跟踪和跨度,虽然我在日志中获得了跟踪和跨度 id,但它们都是相同的,即使在控制器和服务类中它们也是相同的。
gradle.build:
compile('org.springframework.boot:spring-boot-starter:2.1.4.RELEASE')
compile 'org.springframework.cloud:spring-cloud-starter-sleuth:2.1.4.RELEASE'
logback.xml:
<property name="CONSOLE_LOG_PATTERN"
value="%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level trace=%X{X-B3-TraceId} span=%X{X-B3-SpanId} MSG=%m%n"/>
方面类:
@Around("execution(* com.test.common.controller.*.*(..))")
public Object controllerAspect(ProceedingJoinPoint joinPoint) throws Throwable {
Long startTime = System.currentTimeMillis();
RequestAttributes requestAttributes = RequestContextHolder.getRequestAttributes();
if (requestAttributes == null) {
return joinPoint.proceed();
}
HttpServletRequest httpServletRequest = ((ServletRequestAttributes) RequestContextHolder.currentRequestAttributes()).getRequest();
myLoggingServices(joinPoint, requestAttributes, httpServletRequest, startTime);
return joinPoint.proceed();
}
控制台日志:
2021-07-16 13:41:56.008 [qtp1043203786-34] INFO trace=474376a508632a04 span=474376a508632a04 qualifiedClass=com.test.common.controller.MyController time=14
2021-07-16 13:41:56.009 [qtp1043203786-34] INFO trace=474376a508632a04 span=474376a508632a04 qualifiedClass=com.test.common.controller.MyController time=1
2021-07-16 13:41:56.291 [qtp1043203786-34] INFO trace=474376a508632a04 span=474376a508632a04 qualifiedClass=com.test.common.service.impl.MyServiceImpl time=0
2021-07-16 13:41:56.292 [qtp1043203786-34] INFO trace=474376a508632a04 span=474376a508632a04 qualifiedClass=com.test.common.service.impl.MyServiceImpl time=0
有什么需要补充的吗,请查看Spring boot版本由于应用依赖而修复。
【问题讨论】:
标签: java spring spring-boot spring-cloud spring-cloud-sleuth