{ "info": { "author": "Marsel Mavletkulov", "author_email": "marselester@ya.ru", "bugtrack_url": null, "classifiers": [], "description": "==================\nJSON log formatter\n==================\n\n.. image:: https://travis-ci.org/marselester/json-log-formatter.png\n :target: https://travis-ci.org/marselester/json-log-formatter\n\nThe library helps you to store logs in JSON format. Why is it important?\nWell, it facilitates integration with **Logstash**.\n\nUsage example:\n\n.. code-block:: python\n\n import logging\n\n import json_log_formatter\n\n formatter = json_log_formatter.JSONFormatter()\n\n json_handler = logging.FileHandler(filename='/var/log/my-log.json')\n json_handler.setFormatter(formatter)\n\n logger = logging.getLogger('my_json')\n logger.addHandler(json_handler)\n logger.setLevel(logging.INFO)\n\n logger.info('Sign up', extra={'referral_code': '52d6ce'})\n\n try:\n raise ValueError('something wrong')\n except ValueError:\n logger.error('Request failed', exc_info=True)\n\nThe log file will contain the following log record (inline).\n\n.. code-block:: json\n\n {\n \"message\": \"Sign up\",\n \"time\": \"2015-09-01T06:06:26.524448\",\n \"referral_code\": \"52d6ce\"\n }\n {\n \"message\": \"Request failed\",\n \"time\": \"2015-09-01T06:06:26.524449\",\n \"exc_info\": \"Traceback (most recent call last): ...\"\n }\n\nJSON libraries\n--------------\n\nYou can use **ujson** or **simplejson** instead of built-in **json** library.\nThey are faster and can serialize ``Decimal`` values.\n\n.. code-block:: python\n\n import json_log_formatter\n import ujson\n\n formatter = json_log_formatter.JSONFormatter()\n formatter.json_lib = ujson\n\nDjango integration\n------------------\n\nHere is an example of how the JSON formatter can be used with Django.\n\n.. code-block:: python\n\n LOGGING['formatters']['json'] = {\n '()': 'json_log_formatter.JSONFormatter',\n }\n LOGGING['handlers']['json_file'] = {\n 'level': 'INFO',\n 'class': 'logging.FileHandler',\n 'filename': '/var/log/my-log.json',\n 'formatter': 'json',\n }\n LOGGING['loggers']['my_json'] = {\n 'handlers': ['json_file'],\n 'level': 'INFO',\n }\n\nLet's try to log something.\n\n.. code-block:: python\n\n import logging\n\n logger = logging.getLogger('my_json')\n\n logger.info('Sign up', extra={'referral_code': '52d6ce'})\n\nCustom formatter\n----------------\n\nYou will likely need a custom log format. For instance, you want to log\na user ID, an IP address and ``time`` as ``django.utils.timezone.now()``.\nTo do so you should override ``JSONFormatter.json_record()``.\n\n.. code-block:: python\n\n class CustomisedJSONFormatter(json_log_formatter.JSONFormatter):\n def json_record(self, message, extra, record):\n extra['message'] = message\n extra['user_id'] = current_user_id()\n extra['ip'] = current_ip()\n if 'time' not in extra:\n extra['time'] = django.utils.timezone.now()\n return extra\n\nLet's say you want ``datetime`` to be serialized as timestamp.\nThen you should use **ujson** (which does it by default) and disable\nISO8601 date mutation.\n\n.. code-block:: python\n\n class CustomisedJSONFormatter(json_log_formatter.JSONFormatter):\n json_lib = ujson\n\n def mutate_json_record(self, json_record):\n return json_record\n\nTests\n-----\n\n.. code-block:: console\n\n $ pip install -r requirements.txt\n $ tox", "description_content_type": null, "docs_url": null, "download_url": "UNKNOWN", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/marselester/json-log-formatter", "keywords": null, "license": "UNKNOWN", "maintainer": null, "maintainer_email": null, "name": "JSON-log-formatter", "package_url": "https://pypi.org/project/JSON-log-formatter/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/JSON-log-formatter/", "project_urls": { "Download": "UNKNOWN", "Homepage": "https://github.com/marselester/json-log-formatter" }, "release_url": "https://pypi.org/project/JSON-log-formatter/0.2.0/", "requires_dist": null, "requires_python": null, "summary": "JSON log formatter", "version": "0.2.0" }, "last_serial": 2677675, "releases": { "0.0.1": [ { "comment_text": "", "digests": { "md5": "7a1332e67cb6eb1c5b8768ef61270618", "sha256": "ac134a88de0f0e527deab0c729bc3255cc73f40a53ce99efccf89a53b844cda5" }, "downloads": -1, "filename": "JSON-log-formatter-0.0.1.tar.gz", "has_sig": false, "md5_digest": "7a1332e67cb6eb1c5b8768ef61270618", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 1896, "upload_time": "2015-09-01T07:53:46", "url": "https://files.pythonhosted.org/packages/8d/39/008311a80cc948b314e9473443e9e5408e8794c0043daa5306115ee938eb/JSON-log-formatter-0.0.1.tar.gz" } ], "0.0.2": [ { "comment_text": "", "digests": { "md5": "c8efc716ed9ea5fb5069c2c7ce804215", "sha256": "99e5220208871f8b6c01e173bdc6fa341869463b3c3a75b759abe8c214d1c110" }, "downloads": -1, "filename": "JSON-log-formatter-0.0.2.tar.gz", "has_sig": false, "md5_digest": "c8efc716ed9ea5fb5069c2c7ce804215", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2712, "upload_time": "2015-09-01T11:58:57", "url": "https://files.pythonhosted.org/packages/c4/35/52363d4d55cd5cf45ce33f22a882674a33baa850162c59fce512341f3ed1/JSON-log-formatter-0.0.2.tar.gz" } ], "0.1.0": [ { "comment_text": "", "digests": { "md5": "7c4bb3a3e0e99229dfd73c7874b85c0d", "sha256": "acbcede787875ed5ed4cdd157e531d44c76545d523b41e1d4e4e59df493aeb7b" }, "downloads": -1, "filename": "JSON-log-formatter-0.1.0.tar.gz", "has_sig": false, "md5_digest": "7c4bb3a3e0e99229dfd73c7874b85c0d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2836, "upload_time": "2016-05-19T14:21:16", "url": "https://files.pythonhosted.org/packages/46/83/a51e7ed83d0345ff6bb63d4f6d8c1fbfc388efafaabab9ccb4064daffef3/JSON-log-formatter-0.1.0.tar.gz" } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "8fa4b8704bd23ebd653185862648b259", "sha256": "8bb02773a37274c08f4de748e3accbed269c8395d27149bc2e7e9109af342eee" }, "downloads": -1, "filename": "JSON_log_formatter-0.2.0-py2-none-any.whl", "has_sig": false, "md5_digest": "8fa4b8704bd23ebd653185862648b259", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 5712, "upload_time": "2017-03-02T08:58:53", "url": "https://files.pythonhosted.org/packages/17/59/496f7b4321d2b8d3cfa6d59459a2811747f37bdd5ceb73d913af019fc6ce/JSON_log_formatter-0.2.0-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "4ed6080fb65704d856691260e19cacff", "sha256": "cdc1f1dabc0b9c808ed4e4f26e73885a9e7955bf7190dd9f1b86be967feb5b29" }, "downloads": -1, "filename": "JSON-log-formatter-0.2.0.tar.gz", "has_sig": false, "md5_digest": "4ed6080fb65704d856691260e19cacff", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3362, "upload_time": "2017-03-02T08:58:50", "url": "https://files.pythonhosted.org/packages/40/25/03b613db3ef5a3acc778d170573b35985b246e995061657afdbc1341ed8e/JSON-log-formatter-0.2.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "8fa4b8704bd23ebd653185862648b259", "sha256": "8bb02773a37274c08f4de748e3accbed269c8395d27149bc2e7e9109af342eee" }, "downloads": -1, "filename": "JSON_log_formatter-0.2.0-py2-none-any.whl", "has_sig": false, "md5_digest": "8fa4b8704bd23ebd653185862648b259", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 5712, "upload_time": "2017-03-02T08:58:53", "url": "https://files.pythonhosted.org/packages/17/59/496f7b4321d2b8d3cfa6d59459a2811747f37bdd5ceb73d913af019fc6ce/JSON_log_formatter-0.2.0-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "4ed6080fb65704d856691260e19cacff", "sha256": "cdc1f1dabc0b9c808ed4e4f26e73885a9e7955bf7190dd9f1b86be967feb5b29" }, "downloads": -1, "filename": "JSON-log-formatter-0.2.0.tar.gz", "has_sig": false, "md5_digest": "4ed6080fb65704d856691260e19cacff", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3362, "upload_time": "2017-03-02T08:58:50", "url": "https://files.pythonhosted.org/packages/40/25/03b613db3ef5a3acc778d170573b35985b246e995061657afdbc1341ed8e/JSON-log-formatter-0.2.0.tar.gz" } ] }