{ "info": { "author": "Bob Gregory", "author_email": "bob.gregory@cazoo.co.uk", "bugtrack_url": null, "classifiers": [], "description": "Intro, in which opinions are had\n--------------------------------\n\nCazoo-Logger is a deeply opinionated structured logger for Python on AWS Lambda.\n\nCazoo-Logger owes a debt to `aws_lambda_logger`_ which is both less opinionated, and probaby better suited to your particular use-case than this library. Go check it out.\n\nBasic Usage\n-----------\n\nThe Cazoo Logger module exposes a single function `config` that sets up the logger for use.\n\n>>> import cazoo_logger\n>>> cazoo_logger.config()\n\nBy default this configures the root logger at INFO level, writing to a special JSON formatter.\n\nTo obtain a logger instance, call the appropriate fromContext function with your incoming event and context:\n\n>>> def handler(event, context):\n... logger = cazoo_logger.fromContext(event, context)\n... logger.info('sup?')\n...\n\nThis will result in well-formatted json messages with a documented schema.\n\n::\n\n {\n \"msg\": \"sup?\",\n \"context\": {\n \"request_id\": \"abc123\",\n \"function\": {\"name\": \"do-things\", \"version\": \"0.1.2.3\"},\n \"sns\": {\n \"id\": \"66591d01-0241-5751-bb17-586e5a6dcf91\",\n \"topic\": \"arn:aws:sns:us-east-1:12345678912:bucket-o-stuff\",\n \"type\": \"Notification\",\n \"subject\": \"Amazon S3 Notification\",\n },\n }\n }\n\nIf you don't have an AWS context and event, you can construct a logger with no context\n\n>>> logger = cazoo_logger.empty()\n\nLogging Errors\n--------------\n\nLogging caught errors is as simple as setting the exc_info kwarg to True on the log call.\n\n>>> try:\n... raise ValueError(\"What in the heck do you call that?\")\n... except:\n... logger.warn(\"I dunno man, looks pretty sketchy to me\", exc_info=True)\n...\n {\"msg\": \"I dunno man, looks pretty sketchy to me\", \"data\": {\"error\": {\"name\": \"ValueError\", \"message\": \"What in the heck do you call that?\", \"stack\": \"Traceback (most recent call last):\\n File \\\"\\\", line 2, in \\nValueError: What in the heck do you call that?\"}}}\n\n\nLogging additional data\n-----------------------\n\nYou might want to include additional structured data in your logs. Any values you pass to the `extra` kwarg will be json serialised into the `data` section of your log line.\n\n>>> logger.info(\"I did a query\", extra={'sql': {'query': 'select * from table where field = ?', 'parameters': [123] }})\n{\"msg\": \"I did a query\", \"data\": {\"sql\": {\"query\": \"select * from table where field = ?\", \"parameters\": [123]}}}\n\nYou can also use the `with_data` method. This method returns a new logger instance with the data section pre-populated.\n\n>>> new_logger = logger.with_data(sql={'query': 'select * from foo where bar = ?', 'parameters':[234]})\n>>> new_logger.debug('doin a query')\n{\"msg\": \"doin a query\", \"data\": {\"sql\": {\"query\": \"select * from foo where bar = ?\", \"parameters\": [234]}}}\n>>> new_logger.error('oh noes! the query did not work!')\n{\"msg\": \"oh noes! the query did not work!\", \"data\": {\"sql\": {\"query\": \"select * from foo where bar = ?\", \"parameters\": [234]}}}\n\n\nLogging additional context\n--------------------------\n\nSimilarly you might want to add more data to the context section of your log event.\n\n>>> new_logger = logger.with_context(request_id='abc-123')\n>>> new_logger.info('handling request')\n{\"msg\": \"handling request\", \"context\": {\"request_id\": \"abc-123\"}}\n\n.. _cazoo logger: https://www.npmjs.com/package/cazoo-logger\n.. _aws_lambda_logger: https://pypi.org/project/aws-lambda-logging\n\nAdditional Log Levels\n---------------------\nThe add_logging_level function allows you to add custom log levels to the logger.\nSo for example a level of \"TRACE\" could be added at 15 to provide a level of logging is\nbetween DEBUG and INFO.", "description_content_type": "text/x-rst", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/Cazoo-uk/py-logger", "keywords": "", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "cazoo-logger", "package_url": "https://pypi.org/project/cazoo-logger/", "platform": "", "project_url": "https://pypi.org/project/cazoo-logger/", "project_urls": { "Homepage": "https://github.com/Cazoo-uk/py-logger" }, "release_url": "https://pypi.org/project/cazoo-logger/0.11.0/", "requires_dist": null, "requires_python": "", "summary": "Super-opinionated structured logger for AWS lambda", "version": "0.11.0", "yanked": false, "yanked_reason": null }, "last_serial": 11781207, "releases": { "0.0.0": [ { "comment_text": "", "digests": { "md5": "1b6e2cafe8ab671080b19fcc9d13b9f6", "sha256": "f65caf2d6fc79d2d096ae30b69b08c5ed8dd1121c62d060e254667421d22bae0" }, "downloads": -1, "filename": "cazoo_logger-0.0.0.tar.gz", "has_sig": false, "md5_digest": "1b6e2cafe8ab671080b19fcc9d13b9f6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2063, "upload_time": "2019-06-28T04:37:14", "upload_time_iso_8601": "2019-06-28T04:37:14.290174Z", "url": "https://files.pythonhosted.org/packages/c4/0b/9120725149fc9db944d40cf98f5afd4d5086531be96ba34374bc18e7d6be/cazoo_logger-0.0.0.tar.gz", "yanked": false, "yanked_reason": null } ], "0.1.0": [ { "comment_text": "", "digests": { "md5": "0676c215fc97361dc70854b671bcd31b", "sha256": "11c67ef4ce3015ea552ff5d602627370ed86d9d821ff8c5c42280d428204f953" }, "downloads": -1, "filename": "cazoo_logger-0.1.0.tar.gz", "has_sig": false, "md5_digest": "0676c215fc97361dc70854b671bcd31b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 19727, "upload_time": "2019-06-28T04:37:16", "upload_time_iso_8601": "2019-06-28T04:37:16.195055Z", "url": "https://files.pythonhosted.org/packages/c6/a4/dba428fb7bc4e0a4dfc7d44e9cc800d22172906bc4658540030863c55b2f/cazoo_logger-0.1.0.tar.gz", "yanked": false, "yanked_reason": null } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "93e3964275b5eceea162d298ed86b7af", "sha256": "aaa80456d204aed2fea0e1a9eee87b9a0972f4897e780630add682b8099d2aad" }, "downloads": -1, "filename": "cazoo_logger-0.1.1.tar.gz", "has_sig": false, "md5_digest": "93e3964275b5eceea162d298ed86b7af", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 20115, "upload_time": "2019-06-28T04:45:11", "upload_time_iso_8601": "2019-06-28T04:45:11.947857Z", "url": "https://files.pythonhosted.org/packages/d9/78/4c871ca2c319ae33bc25353861df876e50595adac73e8bc356f0518cfad7/cazoo_logger-0.1.1.tar.gz", "yanked": false, "yanked_reason": null } ], "0.1.2": [ { "comment_text": "", "digests": { "md5": "aa6c25ecff60a901728c75deffc47a99", "sha256": "e2630e2560828a44baccfff271ca786b5f60867a729cfbd41f60638d0213cc29" }, "downloads": -1, "filename": "cazoo_logger-0.1.2.tar.gz", "has_sig": false, "md5_digest": "aa6c25ecff60a901728c75deffc47a99", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 20128, "upload_time": "2019-06-28T04:49:36", "upload_time_iso_8601": "2019-06-28T04:49:36.009036Z", "url": "https://files.pythonhosted.org/packages/fe/64/5a3e07c83311c73133ef11fa9f3e3fa3178586cf076a4684063680f6012d/cazoo_logger-0.1.2.tar.gz", "yanked": false, "yanked_reason": null } ], "0.1.3": [ { "comment_text": "", "digests": { "md5": "88f760c1f0fd3fd3441af4d8c23a27df", "sha256": "bb8c25c57f0f424b829d1fe119120f4c795d331c3eb6a1a4138e4a040802d055" }, "downloads": -1, "filename": "cazoo_logger-0.1.3.tar.gz", "has_sig": false, "md5_digest": "88f760c1f0fd3fd3441af4d8c23a27df", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 20401, "upload_time": "2019-06-28T04:51:02", "upload_time_iso_8601": "2019-06-28T04:51:02.237150Z", "url": "https://files.pythonhosted.org/packages/58/bf/679dfdcabc11cfa3adb363149491c5e3583d0d63392ce1efb5a8f97fabd4/cazoo_logger-0.1.3.tar.gz", "yanked": false, "yanked_reason": null } ], "0.10.0": [ { "comment_text": "", "digests": { "md5": "1d316e0c567abf11ab8fe5902d0a7990", "sha256": "e2c22be7690b1845ef8f1da1b3a393fa65b63d7936cac6dc250415d45e9cc3f0" }, "downloads": -1, "filename": "cazoo_logger-0.10.0.tar.gz", "has_sig": false, "md5_digest": "1d316e0c567abf11ab8fe5902d0a7990", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 23827, "upload_time": "2021-10-20T14:08:45", "upload_time_iso_8601": "2021-10-20T14:08:45.881147Z", "url": "https://files.pythonhosted.org/packages/be/71/fb6f17fb3b7b41063e0c33fa7f1e756ba91334fab2468f039915401ca9db/cazoo_logger-0.10.0.tar.gz", "yanked": false, "yanked_reason": null } ], "0.11.0": [ { "comment_text": "", "digests": { "md5": "1ea0a3305a0f47ab5d14e6c963be5428", "sha256": "a8cd3a76f112a5af66bf7efa41dab4fa7c8669b6aef0923a5a750a837ac4e88d" }, "downloads": -1, "filename": "cazoo_logger-0.11.0.tar.gz", "has_sig": false, "md5_digest": "1ea0a3305a0f47ab5d14e6c963be5428", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 23798, "upload_time": "2021-10-20T14:34:50", "upload_time_iso_8601": "2021-10-20T14:34:50.310583Z", "url": "https://files.pythonhosted.org/packages/de/cc/359015c50eebf7992ca13149fbd5ada15c512f1b622e8113d06edd77aa24/cazoo_logger-0.11.0.tar.gz", "yanked": false, "yanked_reason": null } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "6da16a6fec3d3e63114c66dc9af65cc7", "sha256": "fb2ae0b860bd76bb06738c076a89957c056490f43d1e2cc52867adbc426c3c6b" }, "downloads": -1, "filename": "cazoo_logger-0.2.0.tar.gz", "has_sig": false, "md5_digest": "6da16a6fec3d3e63114c66dc9af65cc7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 20697, "upload_time": "2019-06-28T09:08:52", "upload_time_iso_8601": "2019-06-28T09:08:52.095533Z", "url": "https://files.pythonhosted.org/packages/69/01/9b30c190921ed64e05c778c5142f7e09d2c289eb85ae40dbb5fd25207a69/cazoo_logger-0.2.0.tar.gz", "yanked": false, "yanked_reason": null } ], "0.3.0": [ { "comment_text": "", "digests": { "md5": "9c3d870c63d108c6ac0b33cd3d590adc", "sha256": "6821e358b610dd3e11859f6b0067bc7d275bfc2811e5bb6609fd2dbe8c9dccd6" }, "downloads": -1, "filename": "cazoo_logger-0.3.0.macosx-10.14-x86_64.tar.gz", "has_sig": false, "md5_digest": "9c3d870c63d108c6ac0b33cd3d590adc", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7083, "upload_time": "2019-07-04T13:25:12", "upload_time_iso_8601": "2019-07-04T13:25:12.763092Z", "url": "https://files.pythonhosted.org/packages/a1/20/aac8fa9f4d6bc2edf6cf7f397e1f30b633e1e8b425d1df732309ba1c1c38/cazoo_logger-0.3.0.macosx-10.14-x86_64.tar.gz", "yanked": false, "yanked_reason": null } ], "0.3.1": [ { "comment_text": "", "digests": { "md5": "31400c49c6066c3dc2898b8b94e9d8e0", "sha256": "f78eb508e4698a4d1537d2b91eb9e45a555800a87881e03c9b61f224f36619bb" }, "downloads": -1, "filename": "cazoo_logger-0.3.1.tar.gz", "has_sig": false, "md5_digest": "31400c49c6066c3dc2898b8b94e9d8e0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 20712, "upload_time": "2019-07-04T13:27:11", "upload_time_iso_8601": "2019-07-04T13:27:11.645339Z", "url": "https://files.pythonhosted.org/packages/29/13/8c88cdc154f0e582b66a74baecf275542fec15e00fcff83e7d4b9dea120b/cazoo_logger-0.3.1.tar.gz", "yanked": false, "yanked_reason": null } ], "0.4.0": [ { "comment_text": "", "digests": { "md5": "cfca114333ff9abf0f3a4190eb405d36", "sha256": "fc5a66e223456b2072d6c68bb2195a8587849bec852bd441457c165f1f09c26a" }, "downloads": -1, "filename": "cazoo_logger-0.4.0.tar.gz", "has_sig": false, "md5_digest": "cfca114333ff9abf0f3a4190eb405d36", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 20728, "upload_time": "2019-07-04T21:00:05", "upload_time_iso_8601": "2019-07-04T21:00:05.942785Z", "url": "https://files.pythonhosted.org/packages/ee/72/d2a833ca4f4e5c735a7e340d63790c4fa8aa1f2a0f8bcaf59fa1eaa4d1d4/cazoo_logger-0.4.0.tar.gz", "yanked": false, "yanked_reason": null } ], "0.4.1": [ { "comment_text": "", "digests": { "md5": "dccd461b33ce5ad25bc35db89574da70", "sha256": "3bcdf7688bf3a2f1d8a5b18f3568e90586b4f109de890a091bd4fcaad27a2907" }, "downloads": -1, "filename": "cazoo_logger-0.4.1.tar.gz", "has_sig": false, "md5_digest": "dccd461b33ce5ad25bc35db89574da70", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 20726, "upload_time": "2019-07-04T21:06:27", "upload_time_iso_8601": "2019-07-04T21:06:27.108388Z", "url": "https://files.pythonhosted.org/packages/12/6c/52fa330896479adc511fc493e1a5836b0ab7f3c94a0a92e0dd72ad0dc457/cazoo_logger-0.4.1.tar.gz", "yanked": false, "yanked_reason": null } ], "0.4.2": [ { "comment_text": "", "digests": { "md5": "855eea30de236bea0d31e30e4c8cd499", "sha256": "76e501ce99928dda13a7fde861f17467f31d16f664eaab58cb856f30de006a5f" }, "downloads": -1, "filename": "cazoo_logger-0.4.2.tar.gz", "has_sig": false, "md5_digest": "855eea30de236bea0d31e30e4c8cd499", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 20771, "upload_time": "2019-07-17T15:15:26", "upload_time_iso_8601": "2019-07-17T15:15:26.137394Z", "url": "https://files.pythonhosted.org/packages/f1/8c/78598963fc7ec7ee31b5334ec8ac424c8ca87d06ddf1340c75237ecb6ed6/cazoo_logger-0.4.2.tar.gz", "yanked": false, "yanked_reason": null } ], "0.5.0": [ { "comment_text": "", "digests": { "md5": "1a0b32c414345d6900c3f8ee403cb125", "sha256": "aa951325cb58474a0bec890cb71ffed55209a1a64cced5578eee4a56d651f27a" }, "downloads": -1, "filename": "cazoo_logger-0.5.0.tar.gz", "has_sig": false, "md5_digest": "1a0b32c414345d6900c3f8ee403cb125", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 20790, "upload_time": "2019-07-22T13:56:26", "upload_time_iso_8601": "2019-07-22T13:56:26.735013Z", "url": "https://files.pythonhosted.org/packages/78/5f/6bb13e62e3703500a6e4dd67c582cca93be8da7f7f5c946bab3a52843057/cazoo_logger-0.5.0.tar.gz", "yanked": false, "yanked_reason": null } ], "0.6.0": [ { "comment_text": "", "digests": { "md5": "0a3d56719e7db9a9e75cda6bd2636ba9", "sha256": "d1854bce8fd4cc5d8fe36ae288f805d225fd69abc9faf8e1f8ca7f255fb4ee3d" }, "downloads": -1, "filename": "cazoo_logger-0.6.0.tar.gz", "has_sig": false, "md5_digest": "0a3d56719e7db9a9e75cda6bd2636ba9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 20858, "upload_time": "2019-08-12T09:39:02", "upload_time_iso_8601": "2019-08-12T09:39:02.309935Z", "url": "https://files.pythonhosted.org/packages/41/f6/bece99f3b7188918849bfb8acb6ae47d1605778d948b0ee0d97d80dc4ecf/cazoo_logger-0.6.0.tar.gz", "yanked": false, "yanked_reason": null } ], "0.7.0": [ { "comment_text": "", "digests": { "md5": "f0d03178edfeb80c7f331dce35bd5f56", "sha256": "ee8e6043817e9b289ae84486678d8c71fa9980836d6cffa4ce383d6c6e2f98b8" }, "downloads": -1, "filename": "cazoo_logger-0.7.0.tar.gz", "has_sig": false, "md5_digest": "f0d03178edfeb80c7f331dce35bd5f56", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 21699, "upload_time": "2019-10-01T12:20:14", "upload_time_iso_8601": "2019-10-01T12:20:14.137785Z", "url": "https://files.pythonhosted.org/packages/da/2d/e5a6180151e360669155607b059f6e78703fb5cafa83af05ee222a9300a4/cazoo_logger-0.7.0.tar.gz", "yanked": false, "yanked_reason": null } ], "0.8.0": [ { "comment_text": "", "digests": { "md5": "3f4106690da4ded52e1dd63d8db29356", "sha256": "33a68b5bae0ab82208e7bfc164d0e3ff860a00e54ee4c58660225f3a8592ed3a" }, "downloads": -1, "filename": "cazoo_logger-0.8.0.tar.gz", "has_sig": false, "md5_digest": "3f4106690da4ded52e1dd63d8db29356", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 22088, "upload_time": "2019-10-25T13:44:00", "upload_time_iso_8601": "2019-10-25T13:44:00.077099Z", "url": "https://files.pythonhosted.org/packages/1b/13/51ecff83cec28da2feee6f42c7416963ea31f644e45a7a33e43734dc2b13/cazoo_logger-0.8.0.tar.gz", "yanked": false, "yanked_reason": null } ], "0.9.0": [ { "comment_text": "", "digests": { "md5": "a654077a343c2b5df1db86558b73e821", "sha256": "9113f2399186d0690181d775237a2fdbd394a2f18a52446d246a11b2ee3e9cf4" }, "downloads": -1, "filename": "cazoo_logger-0.9.0-py3-none-any.whl", "has_sig": false, "md5_digest": "a654077a343c2b5df1db86558b73e821", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 8393, "upload_time": "2020-10-22T13:35:20", "upload_time_iso_8601": "2020-10-22T13:35:20.568452Z", "url": "https://files.pythonhosted.org/packages/5b/60/9ddbdde568b8bce93c71e552e297fc645fcb5a00abc48db6c435ebecd3bd/cazoo_logger-0.9.0-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "cfdfe64a1f91acd91984dd897a59cbf2", "sha256": "ba19f50f1f59d86556e22c4a57f75a10b793019bd4f8666ed9330d8b3f7d27b2" }, "downloads": -1, "filename": "cazoo_logger-0.9.0.tar.gz", "has_sig": false, "md5_digest": "cfdfe64a1f91acd91984dd897a59cbf2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 23040, "upload_time": "2020-10-22T13:35:22", "upload_time_iso_8601": "2020-10-22T13:35:22.101946Z", "url": "https://files.pythonhosted.org/packages/f4/e5/7cd16af644943f7e7a5f3f63132d3db781665d5953d2dec730f8c1441bff/cazoo_logger-0.9.0.tar.gz", "yanked": false, "yanked_reason": null } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "1ea0a3305a0f47ab5d14e6c963be5428", "sha256": "a8cd3a76f112a5af66bf7efa41dab4fa7c8669b6aef0923a5a750a837ac4e88d" }, "downloads": -1, "filename": "cazoo_logger-0.11.0.tar.gz", "has_sig": false, "md5_digest": "1ea0a3305a0f47ab5d14e6c963be5428", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 23798, "upload_time": "2021-10-20T14:34:50", "upload_time_iso_8601": "2021-10-20T14:34:50.310583Z", "url": "https://files.pythonhosted.org/packages/de/cc/359015c50eebf7992ca13149fbd5ada15c512f1b622e8113d06edd77aa24/cazoo_logger-0.11.0.tar.gz", "yanked": false, "yanked_reason": null } ], "vulnerabilities": [] }