在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微服务中日志打印输出每个请求接口及请求参数的案例。最后附上本案例源码,登录后即可下载。





发表评论