可以解析和处理请求处理器(如Amazon ELB、HeloCu或任何多层基础设施)发送的多种类型的请求ID的烧瓶扩展插件。
Flask-Log-Request-ID的Python项目详细描述
flask日志请求id是Flask的扩展,可以解析和处理 请求处理程序(如Amazon ELB,Heroku Request-ID)发送的请求id 或任何多层基础设施,如微服务所用的基础设施。普通人 使用场景是在日志系统中注入请求id,以便 日志记录,甚至是第三方库发出的日志记录,都附加了 请求启动其呼叫的ID。这可以大大改善问题的跟踪和调试。
功能
flask日志请求id提供可以使用的current_request_id()函数 随时获取启动的执行链的请求ID。它还附带 在日志事件上插入此信息的日志筛选器,作为转发的扩展 当前的请求标识为芹菜的工人。
示例:解析请求id并将其发送到logging
在下面的示例中,我们将使用RequestIDLogFilter注入 所有日志事件的请求ID,以及用于打印此消息的自定义格式化程序 信息。如果所有这些听起来都不熟悉,请看python logging system
importloggingimportlogging.configfromrandomimportrandintfromflaskimportFlaskfromflask_log_request_idimportRequestID,RequestIDLogFilterdefgeneric_add(a,b):"""Simple function to add two numbers that is not aware of the request id"""logging.debug('Called generic_add({}, {})'.format(a,b))returna+bapp=Flask(__name__)RequestID(app)# Setup logginghandler=logging.StreamHandler()handler.setFormatter(logging.Formatter("%(asctime)s - %(name)s - level=%(levelname)s - request_id=%(request_id)s - %(message)s"))handler.addFilter(RequestIDLogFilter())# << Add request id contextual filterlogging.getLogger().addHandler(handler)@app.route('/')defindex():a,b=randint(1,15),randint(1,15)logging.info('Adding two random numbers {} {}'.format(a,b))returnstr(generic_add(a,b))
安装
最简单的安装方法是使用来自pypi的pip。
pip install flask-log-request-id
许可证
有关许可证权限和限制(mit),请参阅LICENSE文件。