代码拉取完成,页面将自动刷新
在前面说到gateway改造时候,如果眼神好的童鞋,在上面的httpresult.go中已经看到了log的身影:
我们在来看下rpc中怎么处理的
是的,我在每个rpc启动的main中加入了grpc拦截器 https://www.yuque.com/tal-tech/go-zero/ttzlo1,那让我们看看grpc拦截器里面做了什么
然后我代码里面使用github/pkg/errors这个包去处理错误的,这个包还是很好用的
所以呢,
我们在grpc中打印日志 logx.WithContext(ctx).Errorf("【RPC-SRV-ERR】 %+v",err),
在api中打印日志logx.WithContext(r.Context()).Error("【GATEWAY-SRV-ERR】 : %+v ",err)
go-zero中打印日志,使用logx.WithContext 会把trace-id带入,这样一个请求下来,比如,user-api --> user-srv --> message-srv
那如果messsage-srv出错,他们三个是同一个trace-id,是不是就可以在elk通过输入这个trace-id一次性搜索出来这条请求报错堆栈信息呢?当然你也可以接入jager、zipkin、skywalking等等,这个我暂时还没接入
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。