django中用于调试请求的相关id
django-cid的Python项目详细描述
日志记录很重要。任何在凌晨3点接到电话的人 是唐知道的。如果没有质量记录,几乎不可能 弄清楚到底发生了什么。
你记录的越多,就越难准确地找到 特定请求的效果是。输入django关联id。 传入的请求被分配一个唯一的标识符。这个可以 在面向公众的web服务器(例如nginx)中发生或应用 Django自己。
然后就可以使用这个相关id(也称为请求id) 通过django请求/响应周期,可以自动 包含在所有日志消息中。这样,您可以轻松链接所有日志 与同一请求相关的消息:
2018-10-01T08:18:39.86+00:00 correlation_id=2433d5d4-27a3-4889-b14b-107a131368a3 Call to plug from cpoint=1 2018-10-01T08:18:39.90+00:00 correlation_id=72fbd7dd-a0ba-4f92-9ed0-0db358338e86 Call to state by cpoint=2 with {'state': {'B': 'idle', 'A': 'on_charge'}} 2018-10-01T08:18:39.92+00:00 correlation_id=2433d5d4-27a3-4889-b14b-107a131368a3 Ended rental=7 customer="John Smith" on plug
在这个例子中,我们可以看到第一个和第三个日志消息 与同一请求绑定,而第二条消息与 不同的请求。
除了这些日志之外,django-cid还可以包含相关 编号:
- 在所有SQL查询中(作为注释);
- 在渲染模板中;
- 作为django生成的http响应中的头;
- 也可以在任何地方使用django-cid的api 例如,对另一个内部系统的请求使用http头 您的,这在面向服务的体系结构中特别有用。
文档可以在以下位置找到:https://django-correlation-id.readthedocs.org/
来源于github:https://github.com/Polyconseil/django-cid
支持的版本
我们目前支持以下版本:
- Django 1.11,python>;=3.4;
- Django 2.0,带python>;=3.4;
- Django 2.1,python>;=3.5。
其他版本可以工作,但不受支持。
历史记录
1.3(2018-10-09)
- bug fix:修复打包错误(在版本1.2中引入) 导致安装了两个额外的包tests和sandbox。
1.2(2018-10-08)
- bug fix:修复导致 要在已处理的所有请求中重用的关联ID 同样的线索。
1.1(2018-10-01)
- 允许将上游相关ID与 本地生成的,具有新的CID_CONCATENATE_IDS设置。
1.0(2018-10-01)
警告:此版本包含不向后的更改 兼容的。请务必阅读下面的详细信息,以了解您是否以及如何 可以迁移。
向后不兼容:放弃对django 1.10及更早版本的支持。
向后不兼容:放弃对python 2的支持。
添加对django 2的支持。版本0.x已与一起使用 Django 2但是测试没有对它进行。现在是了。
当GENERATE_CID是 启用,这样即使不使用中间件也可以使用它。
修复数据库后端对django 1.11的支持。
添加postgis数据库后端。
添加CID_SQL_COMMENT_TEMPLATE以自定义cid的方式 作为注释包含在sql查询中。
向后不兼容:更改要在中使用的应用程序名称 已安装的应用程序。
从0.x版迁移:如果您在INSTALLED_APPS中有cid, 替换为cid.apps.CidAppConfig。如果没有,请添加 后者。
向后不兼容:删除与 MIDDLEWARE_CLASSES。你应该使用MIDDLEWARE 设置。如果你已经这样做了,就不需要改变。
如果您真的必须使用旧的MIDDLEWARE_CLASSES设置, 包括CidOldStyleMiddleware,而不是CidMiddleware。
0.2.0(2016-12-06)
- 增加了对django 1.10中间件的支持(感谢@qbey)
0.1.2(2016-12-01)
- <里>使cid repsonse头可配置,并可选(感谢@dbaty)
0.1.0(2014-08-05)
- pypi上的第一个版本。