如何在python gRPC服务器上记录请求和响应活动?



我浏览了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()好。

理想情况下,可以让服务器打印日志,如:

  1. 服务器启动的接口。(ip/主机名:端口)
  2. 当RPC调用被接收到一个特定的方法时。
  3. 方法中的任何中间信息或调试日志。等,

如果你正在寻找grpc的默认日志记录,它只在开发过程中有用,在生产中没有多大帮助,你可以探索更多关于grpc跟踪的信息,使用它你可以控制grpc的不同子组件的日志记录。

最新更新