{ "info": { "author": "Paulius Maru\u0161ka", "author_email": "paulius.maruska+loggingex@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 5 - Production/Stable", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Operating System :: MacOS :: MacOS X", "Operating System :: Microsoft :: Windows", "Operating System :: OS Independent", "Operating System :: POSIX", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", "Programming Language :: Python :: 3 :: Only", "Topic :: Software Development :: Libraries", "Topic :: System :: Logging" ], "description": "##################\nLogging Extensions\n##################\n\n.. image:: https://img.shields.io/badge/code%20style-black-000000.svg\n :target: https://github.com/ambv/black\n\n.. image:: https://img.shields.io/github/license/open-things/loggingex.svg\n :target: https://github.com/open-things/loggingex/blob/master/LICENSE\n\n.. image:: https://travis-ci.com/open-things/loggingex.svg?branch=master\n :target: https://travis-ci.com/open-things/loggingex\n\n.. image:: https://img.shields.io/pypi/v/loggingex.svg?color=green\n :target: https://pypi.org/project/loggingex/\n\n.. image:: https://img.shields.io/pypi/pyversions/loggingex.svg\n :target: https://pypi.org/project/loggingex/\n\n.. image:: https://img.shields.io/pypi/dm/loggingex.svg\n :target: https://pypi.org/project/loggingex/\n\nImplements a few extensions for the standard python logging library.\n\nCurrently, this project lacks documentation. Sorry about that.\n\n\nLogging Context Filter\n======================\n\nLogging Context Filter injects context variables into LogRecord objects as extra\nfields.\n\nHere's a usage example:\n\n.. code-block:: python\n\n import logging\n import sys\n\n from loggingex.context import LoggingContextFilter, context\n\n log = logging.getLogger()\n\n\n def process_lines(lines):\n for index, line in enumerate(lines):\n line = line.strip()\n with context(current_line=index + 1):\n log.debug(\"processing line: %s\", line)\n if not line:\n log.error(\"empty line!\")\n continue\n log.info(\"processed line: %s\", line)\n\n\n def process_files(filenames):\n log.debug(\"starting...\")\n for filename in filenames:\n with context(current_file=filename):\n log.info(\"processing file: %s\", filename)\n with open(filename, \"r\") as f:\n process_lines(f)\n log.info(\"processed file: %s\", filename)\n log.debug(\"work is complete!\")\n\n\n if __name__ == \"__main__\":\n formatter = logging.Formatter(\n \"%(current_file)s:%(current_line)s:%(levelname)s: %(message)s\"\n )\n handler = logging.StreamHandler(stream=sys.stdout)\n handler.setFormatter(formatter)\n handler.setLevel(logging.DEBUG)\n handler.addFilter(LoggingContextFilter()) # it's that simple\n logging.basicConfig(handlers=[handler], level=logging.DEBUG)\n\n with context(current_file=\"-\", current_line=\"-\"):\n # The context above sets default value, so that the formatter does\n # not crash, when they are not defined.\n process_files(sys.argv[1:])\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/open-things/loggingex/", "keywords": "", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "loggingex", "package_url": "https://pypi.org/project/loggingex/", "platform": "", "project_url": "https://pypi.org/project/loggingex/", "project_urls": { "Homepage": "https://github.com/open-things/loggingex/" }, "release_url": "https://pypi.org/project/loggingex/1.2.0/", "requires_dist": [ "contextvars ; python_version < \"3.7\"" ], "requires_python": ">=3.5", "summary": "Logging Extensions", "version": "1.2.0" }, "last_serial": 5154465, "releases": { "1.0.1": [ { "comment_text": "", "digests": { "md5": "ea4ec85e45f1f44b9f988fe08a4ae34e", "sha256": "8513ea12cd83e4fa8c7e44e487d0b33df664080ae162d9c423fa71b5b20b7882" }, "downloads": -1, "filename": "loggingex-1.0.1-py3-none-any.whl", "has_sig": false, "md5_digest": "ea4ec85e45f1f44b9f988fe08a4ae34e", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5", "size": 6329, "upload_time": "2019-04-10T13:17:25", "url": "https://files.pythonhosted.org/packages/9b/84/a41d2ba8c1a74f0e949bda662b38fa89470fe32a0bd07597c17d1f1b8e06/loggingex-1.0.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "bdfec844e40d102e4c15c3517c5dde44", "sha256": "11f3d00cc62be1862a28f0236c3566d60bd6e269549e1c64fbb1c6c8965e9fe0" }, "downloads": -1, "filename": "loggingex-1.0.1.tar.gz", "has_sig": false, "md5_digest": "bdfec844e40d102e4c15c3517c5dde44", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 12678, "upload_time": "2019-04-10T13:17:27", "url": "https://files.pythonhosted.org/packages/e0/ee/024225aa43a3ea61aef1ca5407a71f3bec7be811c7a713485e5dbdea66d0/loggingex-1.0.1.tar.gz" } ], "1.0.2": [ { "comment_text": "", "digests": { "md5": "cb59258dc2ba617bdb8d088c98fac414", "sha256": "166812b6b7fb2a1a1cdc7f1f1abdb961a8e6735de362a182f9b7c796716d7716" }, "downloads": -1, "filename": "loggingex-1.0.2-py3-none-any.whl", "has_sig": false, "md5_digest": "cb59258dc2ba617bdb8d088c98fac414", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5", "size": 6472, "upload_time": "2019-04-11T12:42:08", "url": "https://files.pythonhosted.org/packages/4e/50/247b866e6e8d36fc3b992f8b3ebb436f28978b228f8a307aae6add7a39bf/loggingex-1.0.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "fc6bb8617c06696caf58dc2af239d0df", "sha256": "4885d430ae1d0ff8e84e8a6c021142c9497bda451c5c80ef1c46be476845aa1b" }, "downloads": -1, "filename": "loggingex-1.0.2.tar.gz", "has_sig": false, "md5_digest": "fc6bb8617c06696caf58dc2af239d0df", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 13866, "upload_time": "2019-04-11T12:42:09", "url": "https://files.pythonhosted.org/packages/2e/e8/9ed7dbbbcd5df250128aef35eb0de031b3a6a5f1fe1fbd9f8f6a90bb92dd/loggingex-1.0.2.tar.gz" } ], "1.1.0": [ { "comment_text": "", "digests": { "md5": "95efdafc3e3fe8e17d50122b2398424f", "sha256": "6cb6830bd5935fe854223ad1350702e0ec42928d1c9d4653e006e2f379418ec3" }, "downloads": -1, "filename": "loggingex-1.1.0-py3-none-any.whl", "has_sig": false, "md5_digest": "95efdafc3e3fe8e17d50122b2398424f", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5", "size": 8588, "upload_time": "2019-04-12T07:18:46", "url": "https://files.pythonhosted.org/packages/f0/8f/b0e0724e43ecb77eb9508824f294217dfebaca26858a338f412392ec620f/loggingex-1.1.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "b5c19630d616d534159f2d7746fb25dd", "sha256": "9154d22c272ddba279c0f10072d95b0ad9ac6fabfd8456b53dd4cf140d4696c9" }, "downloads": -1, "filename": "loggingex-1.1.0.tar.gz", "has_sig": false, "md5_digest": "b5c19630d616d534159f2d7746fb25dd", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 15228, "upload_time": "2019-04-12T07:18:47", "url": "https://files.pythonhosted.org/packages/6d/7c/b5b2ccfde5e5a31994982cb9bc4187cb5bfd4d1799de28a4e1c06982150c/loggingex-1.1.0.tar.gz" } ], "1.2.0": [ { "comment_text": "", "digests": { "md5": "0e228f29df8b09230749cd3df82e942a", "sha256": "806fe5c5e134210a894081fedcdf6dace919af62e351f4bfe4c7b2d6aa9c8bdf" }, "downloads": -1, "filename": "loggingex-1.2.0-py3-none-any.whl", "has_sig": false, "md5_digest": "0e228f29df8b09230749cd3df82e942a", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5", "size": 11641, "upload_time": "2019-04-17T10:19:59", "url": "https://files.pythonhosted.org/packages/8e/a9/1c61e4763a616bdbf11fd0345cfbb0cf9fca327aec7e7e19ebef923217e5/loggingex-1.2.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "14874e8d14492e891d9a7aece8898906", "sha256": "bdd3bbb9a465f91bcc55c2858a9c6a52ac3918ab1ea2a9aa30002a9ca8c3420a" }, "downloads": -1, "filename": "loggingex-1.2.0.tar.gz", "has_sig": false, "md5_digest": "14874e8d14492e891d9a7aece8898906", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 20754, "upload_time": "2019-04-17T10:20:00", "url": "https://files.pythonhosted.org/packages/91/01/bc4cc8eaf8c74a4fca35c26abb60053dfa333e0d22fdf54c964a450d0fe8/loggingex-1.2.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "0e228f29df8b09230749cd3df82e942a", "sha256": "806fe5c5e134210a894081fedcdf6dace919af62e351f4bfe4c7b2d6aa9c8bdf" }, "downloads": -1, "filename": "loggingex-1.2.0-py3-none-any.whl", "has_sig": false, "md5_digest": "0e228f29df8b09230749cd3df82e942a", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5", "size": 11641, "upload_time": "2019-04-17T10:19:59", "url": "https://files.pythonhosted.org/packages/8e/a9/1c61e4763a616bdbf11fd0345cfbb0cf9fca327aec7e7e19ebef923217e5/loggingex-1.2.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "14874e8d14492e891d9a7aece8898906", "sha256": "bdd3bbb9a465f91bcc55c2858a9c6a52ac3918ab1ea2a9aa30002a9ca8c3420a" }, "downloads": -1, "filename": "loggingex-1.2.0.tar.gz", "has_sig": false, "md5_digest": "14874e8d14492e891d9a7aece8898906", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 20754, "upload_time": "2019-04-17T10:20:00", "url": "https://files.pythonhosted.org/packages/91/01/bc4cc8eaf8c74a4fca35c26abb60053dfa333e0d22fdf54c964a450d0fe8/loggingex-1.2.0.tar.gz" } ] }