aiologfields:将任务上下文字段注入记录器

aiologfields的Python项目详细描述


https://travis-ci.org/cjrh/aiologfields.svg?branch=masterhttps://coveralls.io/repos/github/cjrh/aiologfields/badge.svg?branch=masterhttps://img.shields.io/pypi/pyversions/aiologfields.svghttps://img.shields.io/github/tag/cjrh/aiologfields.svghttps://img.shields.io/badge/install-pip%20install%20aiologfields-ff69b4.svghttps://img.shields.io/pypi/v/aiologfields.svghttps://img.shields.io/badge/calver-YYYY.MM.MINOR-22bfda.svg

aiologfields

aiologfields使包含相关ID也变得简单。 作为日志消息中的其他上下文信息,跨await 调用和loop.create_task()调用。相关ID非常重要 精确遥测在分布式监控调试中的重要作用 微服务。

说明

再简单不过了:

aiologfields.install()

在此之后,创建的每个任务都有一个logging_fields 属性。要将字段添加到LogRecord,只需将其应用于任何任务:

t=loop.create_task(coro)t.logging_fields.correlation_id='12345'

如果使用的是生成json输出的日志处理程序 (就像logjson!),或生成输出的其他格式化程序 在LogRecord中的所有字段中,您将发现 任务的上下文将包含名为^{tt8}的附加字段$ 值为12345

演示

这是根据其中一项测试改编的:

aiologfields.install()correlation_id=str(uuid4())logger=logging.getLogger('blah')asyncdefcf2():logger.info('blah blah')asyncdefcf1():ct=asyncio.Task.current_task()ct.logging_fields.correlation_id=correlation_idawaitcf2()loop.run_until_complete(cf1())

cf2()内部生成的LogRecord中,有一个附加字段 correlation_id包括在内,即使该字段是在 协程函数cf1()

如果cf2()在单独的 任务本身,因为logging_fields命名空间在 嵌套任务。

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

推荐PyPI第三方库


热门话题
java Android操作共享首选项更新值   java是否可以在单个参数化测试之前执行一次方法?   Java创建临时文件   java字符串已定义但未解析?   java JOptionPane。showConfirmDialog返回int 01而不是字符串YN   java Unitronics OPC Server>JIException访问被拒绝   gzip使用Java组合压缩的gzip文本文件   java在灵活的环境中部署bigtable helloworld不起作用   aspectJ中的java字段读字段写访问   java Hibernate让它映射   找不到媒体类型为application/json、类型为class java的MessageBodyWriter。util。ArrayList   java在SpringMVC中将图像上传到服务器并在mysql数据库中存储引用   如何用Java制作自己的解释器?   java在移动应用程序上使用appium滚动并查找页面中的元素   java无法在重新启动springjdbc、CommonDBCP、tomcat时连接到数据库   java捕获非法argumentException的最佳方法是什么   设计模式避免Java代码重复的良好实践   Java ResourceBundle是如何实现的。getBundle加载属性文件?   java远程访问OpenMQ