我浏览了gRPC教程,并从服务器获得了成功的响应。但是,服务器没有从命令行记录任何内容。我期待看到类似请求收到-响应发送与此状态码。类似于django开发服务器或本地http.server
:
Serving HTTP on 127.0.0.1 port 8000 (http://127.0.0.1:8000/) ...
127.0.0.1 - - [27/Jun/2022 13:06:08] "GET / HTTP/1.1" 200 -
127.0.0.1 - - [27/Jun/2022 13:06:08] code 404, message File not found
我对gRPC服务器的尝试:
GRPC_VERBOSITY=DEBUG python greeter_server.py
输出很奇怪。我尝试了INFO
,当请求进来时什么也没有收到。
我看到在grpc.server
上有一个拦截器参数:
interceptors:一个可选的ServerInterceptor对象列表并有选择地在将传入的rpc交付之前对其进行操作处理程序。给出了拦截器的顺序控制指定。这是一个实验性API。
如何将请求和响应记录到cli?
在gRPC中,由于服务器和客户端的完整实现在您手中,因此开发人员可以在双方创建上下文日志。
您可以使用python日志模块将日志打印到cli。这在很多方面都比plain print()好。
理想情况下,可以让服务器打印日志,如:
- 服务器启动的接口。(ip/主机名:端口)
- 当RPC调用被接收到一个特定的方法时。
- 方法中的任何中间信息或调试日志。等,
如果你正在寻找grpc的默认日志记录,它只在开发过程中有用,在生产中没有多大帮助,你可以探索更多关于grpc跟踪的信息,使用它你可以控制grpc的不同子组件的日志记录。