首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >spring-hateoas中如何将Spring Cloud Sleuth Trace ID填入VndError的logRef字段?

spring-hateoas中如何将Spring Cloud Sleuth Trace ID填入VndError的logRef字段?
EN

Stack Overflow用户
提问于 2018-05-29 23:43:41
回答 1查看 392关注 0票数 0

我有一个从spring-hateoas返回VndError@ControllerAdviceVndError指定了一个logRef字段,我应该将Spring Cloud Sleuth中的跟踪ID放在这个字段中。有没有正式的方法可以做到这一点,或者我应该直接在我的@ControllerAdvice @ExceptionHandler方法中从MDC中检索它?

示例控制器建议:

代码语言:javascript
复制
@ControllerAdvice
class ExceptionHandler {

    @Autowired
    private lateinit var tracer: Tracer

    @ExceptionHandler(LocalException::class)
    fun handleLocalException(e: LocalException): ResponseEntity<VndErrors.VndError> {
        val traceId = MDC.get("X-B3-TraceId") // <-- Is this the correct way of getting trace id from Sleuth?
        val traceId2 = tracer.currentSpan().context().traceIdString() // <-- Or something like this?
        val error = VndErrors.VndError(traceId, e.message)

        return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body(error)
    }
}

GitHub示例:https://github.com/hughwphamill/spring-traceid-logref

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-05-31 19:54:14

在文档中,我们已经描述了如何访问跟踪上下文。通过tracer接口获取跟踪id。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50588253

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档