【问题标题】:Logging correlation id per route in Flask在 Flask 中记录每条路由的相关 ID
【发布时间】:2021-07-16 18:48:26
【问题描述】:

我是 flask 的新手,想从请求中读取自定义关联 ID 并将其记录下来以跟踪每个路由的功能。 我在express 中使用了类似功能的库,并通过HandlerInterceptor 在Java 中使用了实现,并在MDC 中设置了提取的标头值

我看到了一些与烧瓶相关的 python 库,但它们的实现方式是读取预定义的标头名称,而不是允许自定义标头名称并在整个请求生命周期中记录它

关于读取和记录请求标头值以及使用 Flask 应用程序在响应中设置一些唯一 ID 的任何建议

【问题讨论】:

    标签: python flask logging microservices


    【解决方案1】:

    终于找到答案here。我们可以使用flask.glogging.config 和过滤器的概念,因为我已经通过通用的 logging.config 和模式配置了整个应用程序。此外,我什至需要通过自定义请求标头读取关联 ID,比如说 Correlation-ID,或者如果没有找到创建唯一 ID,那么围绕这方面也进行了一些更改。

    【讨论】:

      【解决方案2】:

      试图回答这个问题

      在请求之前注册您的记录器

      @app.before_request
      def init_req():
          g.logger = create_logger("req-"+str(uuid.uuid4()))
      

      使用g.logger 编写您的记录器

      创建logger函数可以这样

      def create_logger(name: str):
          return logging.getLogger(name)
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-12-21
        • 1970-01-01
        • 1970-01-01
        • 2021-10-30
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多