Go微服务全链路跟踪详解

倚天码农 ·
traceid与日志结合,如何做到无侵入?
#1
更多评论
jfeng45
码农
要做到无侵入,这不是tracer的功能,这是logger的功能。你需要找到一个支持自动输出traceID的logger,但我并不知道有这样的logger存在。如果找不到,你可以自己写一个logger的封装,可参考[“清晰架构(Clean Architecture)的Go微服务: 日志管理”](https://jfeng45.github.io/posts/go_logging_and_error_handling/). 把Context作为参数传入logger的封装函数,然后在函数中从Context取出traceID并log它,再调用正常的logger函数。这样每一个调用logger封装函数的语句就会自动输出traceID。 但你还是需要在每个函数中访问Context,用依赖注入(Dependency Injection)是最好的办法。
#2