django中用于调试请求的相关id

django-cid的Python项目详细描述


https://travis-ci.org/Polyconseil/django-cid.png?branch=master

日志记录很重要。任何在凌晨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中引入) 导致安装了两个额外的包testssandbox

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上的第一个版本。

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

推荐PyPI第三方库


热门话题
virtualbox无法从java移动共享文件夹中的文件   java如何连接Android 4.3.5(GA)的apache HttpClient库?   片段中的java Recyclerview未立即显示警报对话框结果   javac(n,r)计算器程序不工作   java使用BooleanQuery还是编写更多索引?   如何在java中设置y/n循环?   java不兼容的通用通配符捕获   java如何在安卓xml中编写数据绑定时的三元操作条件   java如何使用FileDialog?   java如何创建单元测试来检测是否有人使用错误的编码编辑了文件?   java如何从唯一的字符串生成唯一的int?   java gradletomcatplugin:log4j:WARN找不到记录器的附加程序   java我的动态编程解决方案(Kefa和第一步)在codeforces中有什么问题?   java每天更新两个数据库,使它们都包含相同的有效数据集   java如何检查给定的时间是否在时间限制之间   java在单个json POST上保存父级和子级   java如何获取Solr字段类型