{ "info": { "author": "Leybovich Nikita", "author_email": "potykion@gmail.com", "bugtrack_url": null, "classifiers": [ "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python :: 3" ], "description": "# drel\n\nDjango request ElasticSearch logging\n\n## Django support\n\nTo log every django request insert LoggingMiddleware before AuthenticationMiddleware:\n\n```python\n# settings.py\n\nMIDDLEWARE = [\n ...,\n \"django.contrib.auth.middleware.AuthenticationMiddleware\",\n \"drel.django.LoggingMiddleware\",\n ...\n]\n```\n\nThis will insert request and response info to Elastic Search index called `logs-{week_start}-{week_end}` in following format: \n\n```json\n{\n \"timestamp\": \"2018-12-09 02:22:22\",\n \"type\": \"default\",\n \"request\": {\n \"url\": \"https://httpbin.org/post\",\n \"data\": {\"param1\": \"value1\"},\n \"headers\": {}\n },\n \"response\": {\n \"status\": 200,\n \"data\": {\"args\": {}, \"data\": \"\", \"files\": {}, \"form\": {\"param1\": \"value1\"}, \"headers\": {\"Accept\": \"*/*\", \"Accept-Encoding\": \"gzip, deflate\", \"Connection\": \"close\", \"Content-Length\": \"13\", \"Content-Type\": \"application/x-www-form-urlencoded\", \"Host\": \"httpbin.org\", \"User-Agent\": \"python-requests/2.19.1\"}, \"json\": null, \"origin\": \"130.193.67.76\", \"url\": \"https://httpbin.org/post\"}\n },\n \"app\": \"default\",\n \"request_id\": \"2180930f-859b-4aef-8770-17107fff1170\"\n}\n```\n\n## Requests support\n\nTo log [requests](http://docs.python-requests.org/en/master/) request and response data use `drel.requests.log` function: \n\n```pydocstring\n>>> from drel.requests import post, log\n>>> request, response = post(\"https://httpbin.org/post\", {\"param1\": \"value1\"})\n>>> log(request, response)\n```\n\n## Configuration\n\nTo change settings override `config` module values:\n\n```python\nfrom drel import config\n\nconfig.APPLICATION = \"django_app\"\n``` \n\n\n### Sample Django configuration\n\n```python\nfrom django.http import HttpRequest\nfrom drel.core import config\nfrom drel.django import mail_admins_on_es_exception\n\ndef ignore_logging_handler(request: HttpRequest) -> bool:\n return any([\n request.path == \"/api/register_device/\",\n request.method != \"POST\",\n ])\n\n\nconfig.ELASTIC_SEARCH_EXCEPTION_HANDLER = mail_admins_on_es_exception\nconfig.INDEX_NAME_GETTER = lambda: \"django_app_2019-01-01\"\nconfig.APPLICATION = \"django_app\"\nconfig.IGNORE_LOGGING_HANDLER = ignore_logging_handler\n```\n\nThis configuration:\n\n - mail admins on Elastic Search index exception\n - ignore logging non-POST and /api/register_device/ requests\n - insert docs to django_app_2019-01-01 index\n - application field = django_app\n\n\n", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/potykion/drel", "keywords": "", "license": "", "maintainer": "", "maintainer_email": "", "name": "drel", "package_url": "https://pypi.org/project/drel/", "platform": "", "project_url": "https://pypi.org/project/drel/", "project_urls": { "Homepage": "https://github.com/potykion/drel" }, "release_url": "https://pypi.org/project/drel/0.5.1/", "requires_dist": [ "django (>=1.11)", "requests (>=2.18.0)", "elasticsearch (<7.0.0,>=6.0.0)", "marshmallow (<3.0.0,>=2.16.0)", "attrs (>=18.1.0)" ], "requires_python": "", "summary": "Django request ElasticSearch logging", "version": "0.5.1" }, "last_serial": 4686824, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "9feddc22b3397a60dbdebb69f16f0446", "sha256": "149d1bcce7a32e5f6781312deaaa2141b1ff4d9826c36ea9ddc7a4671b913dce" }, "downloads": -1, "filename": "drel-0.1.0-py3-none-any.whl", "has_sig": false, "md5_digest": "9feddc22b3397a60dbdebb69f16f0446", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 12053, "upload_time": "2018-12-21T16:29:27", "url": "https://files.pythonhosted.org/packages/dd/99/f930e7a9ff9b23dc6ef578719cf727623583241223bcc21b0ad18f984a94/drel-0.1.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "92702fb0437c775f810638edda1d824d", "sha256": "6bfa869d74e2337a8842715148ba3722724aa74c7b31225023535a3a245a3b50" }, "downloads": -1, "filename": "drel-0.1.0.tar.gz", "has_sig": false, "md5_digest": "92702fb0437c775f810638edda1d824d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6912, "upload_time": "2018-12-21T16:29:30", "url": "https://files.pythonhosted.org/packages/80/ab/38af42859735d8d3609a077b0d7958d5ef062169fce469a74b58ac3b9717/drel-0.1.0.tar.gz" } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "6523fd2157ff66454ff437a092ad010a", "sha256": "1fb4a8cfbb7900a7e1b93c0228c9e872f14c8b377912ce08a0438192ecaee49b" }, "downloads": -1, "filename": "drel-0.1.1-py3-none-any.whl", "has_sig": false, "md5_digest": "6523fd2157ff66454ff437a092ad010a", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 12116, "upload_time": "2018-12-21T16:57:02", "url": "https://files.pythonhosted.org/packages/13/2e/f720a006fcf0dde0d7c42c83bc1a1dd42af1b73c87b2e818703c2cb67921/drel-0.1.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "7f242b2691ca18a9312bd9e63161ecea", "sha256": "073d5d3a483f61307ec849930d7dcd9b73192dc4b7c2ddeb87410ed9b1a30ace" }, "downloads": -1, "filename": "drel-0.1.1.tar.gz", "has_sig": false, "md5_digest": "7f242b2691ca18a9312bd9e63161ecea", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6995, "upload_time": "2018-12-21T16:57:03", "url": "https://files.pythonhosted.org/packages/45/d6/406763d7b942bc17f6e723b068313588cbaed64f5e70faffeb2d56b3bdc7/drel-0.1.1.tar.gz" } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "a6ff59ccb875338a6fc473c61125b69a", "sha256": "e2fe2972ced5798d40e68de6ea32922e34a7901b09219adb120911b909bb4b56" }, "downloads": -1, "filename": "drel-0.2.0-py3-none-any.whl", "has_sig": false, "md5_digest": "a6ff59ccb875338a6fc473c61125b69a", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 12672, "upload_time": "2018-12-24T15:23:18", "url": "https://files.pythonhosted.org/packages/c9/c4/69160af07f9ea079dff69c02a17137ec45c6f6ad75e15766933488bfb5b5/drel-0.2.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "bfd325cabaac33666d96d8014a61f11f", "sha256": "68f9b0ee53ebefb72ac552bd237fa303ddd646084626e2b843056f2a37dc7d7c" }, "downloads": -1, "filename": "drel-0.2.0.tar.gz", "has_sig": false, "md5_digest": "bfd325cabaac33666d96d8014a61f11f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7247, "upload_time": "2018-12-24T15:23:20", "url": "https://files.pythonhosted.org/packages/cc/72/8186aad021da4089a86127e1060770d2359e701f4e38e7d14e2e12c2587d/drel-0.2.0.tar.gz" } ], "0.3.0": [ { "comment_text": "", "digests": { "md5": "448181bcce207eed27269fd6d66cb664", "sha256": "6d0fe14cc473345cc67d694abc56fc87d19b0d5241b1be5124db00b5814e761b" }, "downloads": -1, "filename": "drel-0.3.0-py3-none-any.whl", "has_sig": false, "md5_digest": "448181bcce207eed27269fd6d66cb664", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 12863, "upload_time": "2018-12-30T22:49:49", "url": "https://files.pythonhosted.org/packages/e6/6c/a399369e6a561a9a0e4b47d0a88771335c3ec764a54bcfdf6b3a84e44b48/drel-0.3.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "fe7095a7f85f8cc06df23c2dfc60726d", "sha256": "e711508f5fb9423299c05a6e459d2e52f29cfd9da8b05c877106a4b07c725059" }, "downloads": -1, "filename": "drel-0.3.0.tar.gz", "has_sig": false, "md5_digest": "fe7095a7f85f8cc06df23c2dfc60726d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7368, "upload_time": "2018-12-30T22:49:51", "url": "https://files.pythonhosted.org/packages/3b/52/9a5a9ee797567df7a888d6475e981dba9113ce3a132dc17dfab3b9f4fa9e/drel-0.3.0.tar.gz" } ], "0.4.0": [ { "comment_text": "", "digests": { "md5": "6aa3508e5c44aea22792dc8d68652038", "sha256": "d3f8e6ea8eff0c795449aed9693f1cdd82ddf150e511de719c374dafba8f17e4" }, "downloads": -1, "filename": "drel-0.4.0-py3-none-any.whl", "has_sig": false, "md5_digest": "6aa3508e5c44aea22792dc8d68652038", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 12888, "upload_time": "2018-12-31T18:50:34", "url": "https://files.pythonhosted.org/packages/16/7b/62b863533cbb8b92a36d0fb60147a483b4591a40717d369b54cdce6ef5c9/drel-0.4.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "f9794f22d7d3e6db9725d74cd0458d3a", "sha256": "4b7bd9d3dbb377bfcb60e98777bf6600037c72570d8cd3565ae875fa2559212a" }, "downloads": -1, "filename": "drel-0.4.0.tar.gz", "has_sig": false, "md5_digest": "f9794f22d7d3e6db9725d74cd0458d3a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7392, "upload_time": "2018-12-31T18:50:35", "url": "https://files.pythonhosted.org/packages/c0/9d/5dde116eb79c5aee3cd954f01ebd202fe050b10c974d4428b3969cbb9f52/drel-0.4.0.tar.gz" } ], "0.4.1": [ { "comment_text": "", "digests": { "md5": "9823614f907dcfc148d46fa5ee54b312", "sha256": "f242c701234c09cb9bfa46ca12de2e5138d361a238083233831f96c7784300d3" }, "downloads": -1, "filename": "drel-0.4.1-py3-none-any.whl", "has_sig": false, "md5_digest": "9823614f907dcfc148d46fa5ee54b312", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 12921, "upload_time": "2019-01-01T13:04:33", "url": "https://files.pythonhosted.org/packages/c7/0f/9168bfe54bbcf70101e453d15dc3f8f23f5482ac819ed5943830291cf595/drel-0.4.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "603fd80f3f945b7e5d520a12d66aedf5", "sha256": "3083f3b9823088b0858e8bad762195027c79741a268ca9c46c72deb957b1ddbd" }, "downloads": -1, "filename": "drel-0.4.1.tar.gz", "has_sig": false, "md5_digest": "603fd80f3f945b7e5d520a12d66aedf5", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7392, "upload_time": "2019-01-01T13:04:35", "url": "https://files.pythonhosted.org/packages/be/7b/26460d5aafeee32239f21dbbc5bd4a2d2b4fc9ff1cdcadd87726b8317264/drel-0.4.1.tar.gz" } ], "0.4.2": [ { "comment_text": "", "digests": { "md5": "330c030158670eba270548b812eaf4c7", "sha256": "5ab2e1c2e58e8b64c257c2eec147af1aaa4bd4ed20e28dc872fe53cc81b22384" }, "downloads": -1, "filename": "drel-0.4.2-py3-none-any.whl", "has_sig": false, "md5_digest": "330c030158670eba270548b812eaf4c7", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 13463, "upload_time": "2019-01-02T12:43:21", "url": "https://files.pythonhosted.org/packages/d3/dd/eb1e55f9ce577d9cea800b0f9054cfabc90db79f6f4a0387f7d8b2bfe1ec/drel-0.4.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "69141ec990cb70fe4ebff180daf09494", "sha256": "d1165fcb01bd2a0fbfc25b9c71851670b8c6921f6dde42f8128d33fc18ad6547" }, "downloads": -1, "filename": "drel-0.4.2.tar.gz", "has_sig": false, "md5_digest": "69141ec990cb70fe4ebff180daf09494", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7912, "upload_time": "2019-01-02T12:43:23", "url": "https://files.pythonhosted.org/packages/ab/fe/aa39a848b43841f277730858c8b5e3f88f86170ee537175114890094ccda/drel-0.4.2.tar.gz" } ], "0.4.3": [ { "comment_text": "", "digests": { "md5": "8421c245cf8cc868d4df9ce006f61074", "sha256": "55ea65969e4a0728145471b98daeaf192505f595e9ff510f07b881fe17cafc7f" }, "downloads": -1, "filename": "drel-0.4.3-py3-none-any.whl", "has_sig": false, "md5_digest": "8421c245cf8cc868d4df9ce006f61074", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 13531, "upload_time": "2019-01-02T22:22:09", "url": "https://files.pythonhosted.org/packages/34/4f/5fbab986a0524b4fa7e345137867071b8bdf850effc76780ed303790ecff/drel-0.4.3-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "bf8cb591c98dcc2b93a5e67a050af1bb", "sha256": "de713224462adc75a0878a44e1ea08e4827228d1e3605619b79a17fa3a495527" }, "downloads": -1, "filename": "drel-0.4.3.tar.gz", "has_sig": false, "md5_digest": "bf8cb591c98dcc2b93a5e67a050af1bb", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7967, "upload_time": "2019-01-02T22:22:13", "url": "https://files.pythonhosted.org/packages/db/94/3161fb2efb5a454515821e7e05d5d21d0ad64c351b927febb19760de08fb/drel-0.4.3.tar.gz" } ], "0.5.0": [ { "comment_text": "", "digests": { "md5": "b63291855196eccb3ae85ecc3a46ef13", "sha256": "3c3bea507abd58ea777c83f4f0d012f75245fe295eca193479fe5fc01f78d57b" }, "downloads": -1, "filename": "drel-0.5.0-py3-none-any.whl", "has_sig": false, "md5_digest": "b63291855196eccb3ae85ecc3a46ef13", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 14033, "upload_time": "2019-01-11T15:05:08", "url": "https://files.pythonhosted.org/packages/72/ea/218cda7b2253e743c29d1892e8b8f6e8df958a4efe5f730bd60c416dc8bd/drel-0.5.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "29173ca05619a41f3d5803d3c909cd3a", "sha256": "27cf7dbe2bfc8a98cd57b6acf495ab425fb9dbe341cd6dc6adc1eb81f0688602" }, "downloads": -1, "filename": "drel-0.5.0.tar.gz", "has_sig": false, "md5_digest": "29173ca05619a41f3d5803d3c909cd3a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8326, "upload_time": "2019-01-11T15:05:10", "url": "https://files.pythonhosted.org/packages/a4/ca/5883c48ded3d5d5c2896d9ce6e645606bb9128f66b6dc547c866a59f3b5d/drel-0.5.0.tar.gz" } ], "0.5.1": [ { "comment_text": "", "digests": { "md5": "e4075a533f71c2af66af54d1804efccd", "sha256": "95428c48f1c2e0059773582881b235026ea804c0c02cc29c3f5e43fa50c4b451" }, "downloads": -1, "filename": "drel-0.5.1-py3-none-any.whl", "has_sig": false, "md5_digest": "e4075a533f71c2af66af54d1804efccd", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 14096, "upload_time": "2019-01-11T20:13:56", "url": "https://files.pythonhosted.org/packages/46/78/e2b62103de3376255cc7001c0db6866bd4e1dbf521badb19fee2cae318c0/drel-0.5.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "27a2da756fb6b747d9ee11e1ec96330f", "sha256": "813ad15274fad96a4e123a61c0d46f6322c7ccccf7e11c3f609b2a3bbf6c3d24" }, "downloads": -1, "filename": "drel-0.5.1.tar.gz", "has_sig": false, "md5_digest": "27a2da756fb6b747d9ee11e1ec96330f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8393, "upload_time": "2019-01-11T20:14:01", "url": "https://files.pythonhosted.org/packages/3e/b2/7c3428c785f0f90b08554af29bf9b4a5d455ff95f4c0678d7d24795c242c/drel-0.5.1.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "e4075a533f71c2af66af54d1804efccd", "sha256": "95428c48f1c2e0059773582881b235026ea804c0c02cc29c3f5e43fa50c4b451" }, "downloads": -1, "filename": "drel-0.5.1-py3-none-any.whl", "has_sig": false, "md5_digest": "e4075a533f71c2af66af54d1804efccd", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 14096, "upload_time": "2019-01-11T20:13:56", "url": "https://files.pythonhosted.org/packages/46/78/e2b62103de3376255cc7001c0db6866bd4e1dbf521badb19fee2cae318c0/drel-0.5.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "27a2da756fb6b747d9ee11e1ec96330f", "sha256": "813ad15274fad96a4e123a61c0d46f6322c7ccccf7e11c3f609b2a3bbf6c3d24" }, "downloads": -1, "filename": "drel-0.5.1.tar.gz", "has_sig": false, "md5_digest": "27a2da756fb6b747d9ee11e1ec96330f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8393, "upload_time": "2019-01-11T20:14:01", "url": "https://files.pythonhosted.org/packages/3e/b2/7c3428c785f0f90b08554af29bf9b4a5d455ff95f4c0678d7d24795c242c/drel-0.5.1.tar.gz" } ] }