在web开发中,我们经常还会涉及到打印某个http请求,获取请求的路径和请求的参数信息。这是非常必要的,那么这块在go-kratos里面如何实现呢?
其实早go-kratos里面实现非常简单,直接添加log的中间件即可。
直接打开internal/server/http.go和internal/server/grpc.go文件,在newserver的地方添加log中间件
http.go的代码如下:
var opts = []http.ServerOption{ http.Middleware( logging.Server(log.DefaultLogger), mmd.Client(), recovery.Recovery(), ), }
grpc.go的代码如下:
var opts = []grpc.ServerOption{ grpc.Middleware( logging.Server(log.DefaultLogger), mmd.Client(), recovery.Recovery(), ), }
然后启动项目就可以看到类似如下打印的日志了。
INFO kind=server component=http operation=/account.v1.Account/Login args=username:"zhangsan" password:"123456" code=200 reason= stack= latency=0.0706575
是不是非常的方便?以上就是在go-kratos微服务中日志打印输出每个请求接口及请求参数的案例。最后附上本案例源码,登录后即可下载。
发表评论