可以解析和处理请求处理器(如Amazon ELB、HeloCu或任何多层基础设施)发送的多种类型的请求ID的烧瓶扩展插件。

Flask-Log-Request-ID的Python项目详细描述


CircleCI

flask日志请求idFlask的扩展,可以解析和处理 请求处理程序(如Amazon ELBHeroku 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文件。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java为什么单元测试中的“验证”在不同实例的情况下不返回“不同参数”错误?   java如何从具有相同类名的div中选择元素(Selenium)   Java制作纸牌游戏,有关于类的问题吗   bluej在Java中使用变异器和访问器设置颜色和圆半径   java准确定位异常错误的最佳方法是什么?   使用多个监视器时的java设置对话框位置   java如何在不使用JavascriptExecutor的情况下在网页中向下/向上滚动   java在for循环中将大小设置为n   java为什么akka需要不可变的消息   java LdapInvalidDnException:意外标记:   java如果字符串的第一个字母不是一个,如何大写?   使用htmlunit的java html内容提取   java从CDI托管bean获取方法的注释   java有办法在运行时检查post请求参数的大小吗   java我可以将实体注入托管Bean并直接持久化吗?