{ "info": { "author": "Snowball One", "author_email": "opensource+django-cid@polyconseil.fr", "bugtrack_url": null, "classifiers": [ "Development Status :: 5 - Production/Stable", "Framework :: Django", "Intended Audience :: Developers", "License :: OSI Approved :: BSD License", "Natural Language :: English", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7" ], "description": "=====================\nDjango Correlation ID\n=====================\n\n.. image:: https://travis-ci.org/Polyconseil/django-cid.png?branch=master\n :target: https://travis-ci.org/Polyconseil/django-cid\n\n\nLogging is important. Anyone who has had a call at 3am to say the site\nis down knows this. Without quality logging it is almost impossible to\nwork out what on earth is happening.\n\nThe more you log, the harder it is to track down exactly what the\neffects of a particular request are. Enter Django Correlation ID.\nIncoming requests are assigned a unique identifier. This can either\nhappen in your public facing web server (e.g. nginx) or be applied\nby Django itself.\n\nThis correlation id (also known as request id) is then available\nthrough the Django request/response cycle and may be automatically\nincluded in all log messages. That way, you can easily link all log\nmessages that relate to the same request::\n\n 2018-10-01T08:18:39.86+00:00 correlation_id=2433d5d4-27a3-4889-b14b-107a131368a3 Call to plug from cpoint=1\n 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'}}\n 2018-10-01T08:18:39.92+00:00 correlation_id=2433d5d4-27a3-4889-b14b-107a131368a3 Ended rental=7 customer=\"John Smith\" on plug\n\nIn this example, we can see that the first and the third log messages\nare tied to the same request, while the second message relates to a\ndistinct request.\n\nIn addition to these logs, ``django-cid`` can include the correlation\nid:\n\n- in all SQL queries (as a comment);\n- in rendered templates;\n- as a header in the HTTP response generated by Django;\n- and possibly anywhere by using the API of ``django-cid``, for\n example as an HTTP header on a request to another internal system of\n yours, which is especially useful in service-oriented architecture.\n\nDocumentation can be found at: https://django-correlation-id.readthedocs.org/\n\nSources are on GitHub: https://github.com/Polyconseil/django-cid\n\n\nSupported versions\n------------------\n\nWe currently support the following versions:\n\n- Django 2.1 with Python >= 3.5.\n- Django 2.2 with Python >= 3.5.\n\nOther versions may work but are not supported.\n\n\nHistory\n-------\n\n2.0 (2019-09-27)\n++++++++++++++++\n\n* **backward incompatible:** Drop support of Python 3.4.\n* **backward incompatible:** Drop support of Django 1.11 and Django 2.0.\n* Add ``CID_GENERATOR`` setting to allow the customization of the\n correlation id.\n\n\n1.3 (2018-10-09)\n++++++++++++++++\n\n- **bugfix**: Fix packaging bug (introduced in version 1.2) that\n caused two extra packages ``tests`` and ``sandbox`` to be installed.\n\n\n1.2 (2018-10-08)\n++++++++++++++++\n\n- **bugfix:** Fix bug (introduced in version 1.0) that caused the\n correlation id to be reused across all requests that were processed\n by the same thread.\n\n\n1.1 (2018-10-01)\n++++++++++++++++\n\n- Allow to concatenate an upstream correlation id with a\n locally-generated one, with a new ``CID_CONCATENATE_IDS`` setting.\n\n\n1.0 (2018-10-01)\n++++++++++++++++\n\n**Warning:** this release includes changes that are not backward\ncompatible. Be sure to read the details below to know if and how you\ncan migrate.\n\n* **backward incompatible:** Drop support of Django 1.10 and earlier.\n\n* **backward incompatible:** Drop support of Python 2.\n\n* Add support of Django 2. Version 0.x could already be used with\n Django 2 but tests were not run against it. They now are.\n\n* Generate cid outside of the middleware when ``GENERATE_CID`` is\n enabled, so that it's available even if the middleware is not used.\n\n* Fix support of Django 1.11 in database backends.\n\n* Add PostGIS database backend.\n\n* Add ``CID_SQL_COMMENT_TEMPLATE`` to customize how the cid is\n included as comments in SQL queries.\n\n* **backward incompatible:** Change the app name to be used in\n INSTALLED_APPS.\n\n **Migration from version 0.x:** if you had ``cid`` in ``INSTALLED_APPS``,\n replace it by ``cid.apps.CidAppConfig``. If you did not, add the\n latter.\n\n* **backward incompatible:** Drop compatibility with\n ``MIDDLEWARE_CLASSES``. You should use the ``MIDDLEWARE``\n setting. If you already did, no change is necessary.\n\n If you really must use the old ``MIDDLEWARE_CLASSES`` setting,\n include ``CidOldStyleMiddleware`` instead of ``CidMiddleware``.\n\n\n0.2.0 (2016-12-06)\n++++++++++++++++++\n\n* Added support for Django 1.10 middleware (thanks @qbey)\n\n\n0.1.2 (2016-12-01)\n++++++++++++++++++\n\n* Made CID repsonse header configurable, and optional (thanks @dbaty)\n\n0.1.0 (2014-08-05)\n++++++++++++++++++\n\n* First release on PyPI.\n\n\n\n", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/Polyconseil/django-cid", "keywords": "django logging correlation id debugging", "license": "BSD", "maintainer": "Polyconseil", "maintainer_email": "opensource+django-cid@polyconseil.fr", "name": "django-cid", "package_url": "https://pypi.org/project/django-cid/", "platform": "", "project_url": "https://pypi.org/project/django-cid/", "project_urls": { "Homepage": "https://github.com/Polyconseil/django-cid" }, "release_url": "https://pypi.org/project/django-cid/2.0/", "requires_dist": [ "django (>=1.11)" ], "requires_python": "", "summary": "Correlation IDs in Django for debugging requests", "version": "2.0" }, "last_serial": 5896933, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "4dc4552bf3ca0f30a226315e4e592646", "sha256": "bce4fcb119aed3f8f505fc6d75cd83bafa9feebf3872ec7d3d5572cca0d9434e" }, "downloads": -1, "filename": "django_cid-0.1.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "4dc4552bf3ca0f30a226315e4e592646", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 8549, "upload_time": "2014-08-05T05:50:29", "url": "https://files.pythonhosted.org/packages/a9/02/99c6ab7181f5e109c34db9e26afd1f28c3ae8faa67cdb7934d50c47c9cc8/django_cid-0.1.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "0b508e608d2e24b56ee2c495e4c8b384", "sha256": "d82bee77420138b5bdc1ffae59110214e7d998e540d1932fbe0df2ec6ec3979c" }, "downloads": -1, "filename": "django-cid-0.1.0.tar.gz", "has_sig": false, "md5_digest": "0b508e608d2e24b56ee2c495e4c8b384", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7313, "upload_time": "2014-08-05T05:50:25", "url": "https://files.pythonhosted.org/packages/41/1e/cdc76d16f5485e482b9441f2551069205444aae08ff5c0226647a704f291/django-cid-0.1.0.tar.gz" } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "68893dae721e40d60349bb0bac945216", "sha256": "d886282491870b6dabba231d7299c7b6e3153f9a415ca779be19ee4f572981e0" }, "downloads": -1, "filename": "django_cid-0.1.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "68893dae721e40d60349bb0bac945216", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 8557, "upload_time": "2015-09-21T00:41:26", "url": "https://files.pythonhosted.org/packages/ac/67/452500c182aea5a12520607fa229b0dfbe75b834d5fa76a555794cbad0a4/django_cid-0.1.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "381eb9b8ce90daca010ae747ae2b8d0b", "sha256": "dc7ffe448d914aa892b5aab8fa86422852b908029ba97e533d7d05f260906e0b" }, "downloads": -1, "filename": "django-cid-0.1.1.tar.gz", "has_sig": false, "md5_digest": "381eb9b8ce90daca010ae747ae2b8d0b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7260, "upload_time": "2015-09-21T00:41:18", "url": "https://files.pythonhosted.org/packages/09/dc/a418ab11d716ee444cd30553c9e6372ff43bb9b602d69280eee0c841c7d0/django-cid-0.1.1.tar.gz" } ], "0.1.2": [ { "comment_text": "", "digests": { "md5": "d1e6a18c5b498526ed8fa958e6cdf2c7", "sha256": "a8994dc9d83244bbd8df2d91b7852846e55b2c66e9201153ce72cefe10392548" }, "downloads": -1, "filename": "django_cid-0.1.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "d1e6a18c5b498526ed8fa958e6cdf2c7", "packagetype": "bdist_wheel", "python_version": "3.5", "requires_python": null, "size": 8709, "upload_time": "2016-12-01T00:36:14", "url": "https://files.pythonhosted.org/packages/41/5d/b4d00274eadae01dd9b4e4a5cf65534d11b080189b87dbcb5f9caa85cca3/django_cid-0.1.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "011065329e82c6190b68718d329a24e8", "sha256": "841015a66a5e9f33afccc39f14a16957137ef9ccee4600534972924ab171774a" }, "downloads": -1, "filename": "django-cid-0.1.2.tar.gz", "has_sig": false, "md5_digest": "011065329e82c6190b68718d329a24e8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6565, "upload_time": "2016-12-01T00:35:58", "url": "https://files.pythonhosted.org/packages/ab/2d/45a5072912e4269c39045e776b8b322e6b24495b540390ff6f14c2c30af2/django-cid-0.1.2.tar.gz" } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "0ecd4145f826cdd4e4a9ae61b6b12bb0", "sha256": "55da2640a0d3d64663c6c787956db220822edf2263ad0e770b202c4da58b73cf" }, "downloads": -1, "filename": "django_cid-0.2.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "0ecd4145f826cdd4e4a9ae61b6b12bb0", "packagetype": "bdist_wheel", "python_version": "3.5", "requires_python": null, "size": 8872, "upload_time": "2016-12-06T02:19:28", "url": "https://files.pythonhosted.org/packages/99/51/9e456430de5e0725569a00e13b53f39686b4721a79d59801d6e2c7ed7a86/django_cid-0.2.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "f4c318667c7b20ab738aae4a81824892", "sha256": "84de1c1a2e2f71641112d3981dd9ba04b705ea422dc1b80de63acdc7463f00cb" }, "downloads": -1, "filename": "django-cid-0.2.0.tar.gz", "has_sig": false, "md5_digest": "f4c318667c7b20ab738aae4a81824892", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6699, "upload_time": "2016-12-06T02:19:25", "url": "https://files.pythonhosted.org/packages/19/33/a27f5985e324350cf8c4d297efd8157b5bb44cab97bb15ed73ddd16bc276/django-cid-0.2.0.tar.gz" } ], "1.0": [ { "comment_text": "", "digests": { "md5": "4b214e996870e5306bfd9fe0099fdb54", "sha256": "d0c247a279178f2b4a199656cb7c2e4bf72409981cf99ef9a588dbc64544eedc" }, "downloads": -1, "filename": "django-cid-1.0.tar.gz", "has_sig": false, "md5_digest": "4b214e996870e5306bfd9fe0099fdb54", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15272, "upload_time": "2018-10-01T12:34:55", "url": "https://files.pythonhosted.org/packages/74/dd/f0c8588497ab1821d898ab3f9fbe3390f35dcad703080efcd7d682c2e828/django-cid-1.0.tar.gz" } ], "1.1": [ { "comment_text": "", "digests": { "md5": "be11ec62d445197e51761cf8145fa4a6", "sha256": "3073d2c314b366e8d0ff64690d59ba632b40d8a247d568803976614c0d6c9b9a" }, "downloads": -1, "filename": "django-cid-1.1.tar.gz", "has_sig": false, "md5_digest": "be11ec62d445197e51761cf8145fa4a6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15316, "upload_time": "2018-10-01T14:25:48", "url": "https://files.pythonhosted.org/packages/82/a4/7dc40a62741c3bb7980f4561ed0e5a70e6b94316ae8396acf9a00a2cce28/django-cid-1.1.tar.gz" } ], "1.2": [ { "comment_text": "", "digests": { "md5": "c3545b9d967cbce018eefbdb8339658b", "sha256": "468b2b05569e0e1b5cda8d803e17d7a4ea30064bb311d12d3ece613043adacf1" }, "downloads": -1, "filename": "django_cid-1.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "c3545b9d967cbce018eefbdb8339658b", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 17525, "upload_time": "2018-10-08T15:45:01", "url": "https://files.pythonhosted.org/packages/de/c0/59ea30d36243d293c9e06486a34267dc0217ae93f7df22cbdf5b263ac5d2/django_cid-1.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "a9491d663ee863b08f1906a6e52614fe", "sha256": "3da60f6d624d5996049485fab3431cfd8258e809450a52c35db037c2204b9e59" }, "downloads": -1, "filename": "django-cid-1.2.tar.gz", "has_sig": false, "md5_digest": "a9491d663ee863b08f1906a6e52614fe", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15643, "upload_time": "2018-10-08T15:44:59", "url": "https://files.pythonhosted.org/packages/66/12/8f3dd81ffe2e97d7e67de855c7c533224d6f421ed0eadef67f4b643cbeeb/django-cid-1.2.tar.gz" } ], "1.3": [ { "comment_text": "", "digests": { "md5": "926336526fe5ab22208242a5c72f2283", "sha256": "74c2fa191d78ca06700ac4cbb63e7e26ef76136954143a68d046c0ffbf2f382d" }, "downloads": -1, "filename": "django_cid-1.3-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "926336526fe5ab22208242a5c72f2283", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 9568, "upload_time": "2018-10-09T08:28:43", "url": "https://files.pythonhosted.org/packages/05/61/1d9df1165f23b0e87129aa9fdb4211c5e40fba87d80622e256abd96b9b15/django_cid-1.3-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "9534b1ca0210da4460ecffcb4f1442bc", "sha256": "da7022bea35d03210c48c4ffc4d4eae75441eb1bb84a54e2a40e2d261abe0053" }, "downloads": -1, "filename": "django-cid-1.3.tar.gz", "has_sig": false, "md5_digest": "9534b1ca0210da4460ecffcb4f1442bc", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15812, "upload_time": "2018-10-09T08:28:42", "url": "https://files.pythonhosted.org/packages/65/c0/5d08a96b7b8d42735c3279d59b9df8cd28ce0f0bb55a94688cd23340d28b/django-cid-1.3.tar.gz" } ], "2.0": [ { "comment_text": "", "digests": { "md5": "61d64642012f8ea028aad8fd7454ad0f", "sha256": "2a335f6c8c2010421a4ef9bfdd761df0c40bfea62dca7a97dc3689871b6dd190" }, "downloads": -1, "filename": "django_cid-2.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "61d64642012f8ea028aad8fd7454ad0f", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 10732, "upload_time": "2019-09-27T16:19:46", "url": "https://files.pythonhosted.org/packages/91/36/7299654218f0bd98bcc17892fa708db9fb2dce75ce23a0cf529a18aef552/django_cid-2.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "2bc1c8c981bdc15a424a3bc940bdf4a7", "sha256": "112736b06a52dd89edd65da41345c7ff03a96c6c87eba2cbc8bb8407972e2e73" }, "downloads": -1, "filename": "django-cid-2.0.tar.gz", "has_sig": false, "md5_digest": "2bc1c8c981bdc15a424a3bc940bdf4a7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15922, "upload_time": "2019-09-27T16:19:48", "url": "https://files.pythonhosted.org/packages/69/a5/c80cf8c6f8182f60a0fb0a83621159e3c1ccaa9c8bfb94c01e440420ce59/django-cid-2.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "61d64642012f8ea028aad8fd7454ad0f", "sha256": "2a335f6c8c2010421a4ef9bfdd761df0c40bfea62dca7a97dc3689871b6dd190" }, "downloads": -1, "filename": "django_cid-2.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "61d64642012f8ea028aad8fd7454ad0f", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 10732, "upload_time": "2019-09-27T16:19:46", "url": "https://files.pythonhosted.org/packages/91/36/7299654218f0bd98bcc17892fa708db9fb2dce75ce23a0cf529a18aef552/django_cid-2.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "2bc1c8c981bdc15a424a3bc940bdf4a7", "sha256": "112736b06a52dd89edd65da41345c7ff03a96c6c87eba2cbc8bb8407972e2e73" }, "downloads": -1, "filename": "django-cid-2.0.tar.gz", "has_sig": false, "md5_digest": "2bc1c8c981bdc15a424a3bc940bdf4a7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15922, "upload_time": "2019-09-27T16:19:48", "url": "https://files.pythonhosted.org/packages/69/a5/c80cf8c6f8182f60a0fb0a83621159e3c1ccaa9c8bfb94c01e440420ce59/django-cid-2.0.tar.gz" } ] }