{ "info": { "author": "Robert Lechte", "author_email": "robertlechte@gmail.com", "bugtrack_url": null, "classifiers": [ "License :: Other/Proprietary License", "Programming Language :: Python :: 2", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7" ], "description": "# logx: best practice python logging with zero config\n\nConfiguring logging is tedious. Reading the logging module docs makes me tired.\n\nWouldn't it be nice to log as easily as doing a print statement, without any upfront config?\n\n## Obligatory example\n\nEnter `logx`. It's as simple as:\n\n >>> from logx import log\n >>> log.info('hello world')\n hello world\n >>> log.set_default_format()\n >>> log.warn('warning!')\n [2018-02-26 21:51:16,971] WARNING [__main__.:1] warning!\n\nLogs get logged automatically to the logger whose name matches the current module.\n\n## List of sweet features\n\n- Creates loggers lazily/as needed/on demand and **logs to the appropriate logger automatically**. If you're in the \"acme\" module it'll log to a log called \"acme\", no need worry about logger names and instances.\n- **Shows all log messages by default**, which follows the principle of least surprise and is probably what you want when debugging.\n- Included default handler **logs to the appropriate standard output stream by default**: Errors and warnings to stderr, the rest to stdout.\n- Allows easy following of best practice when including log statements in a library: **Just call log.create_null_handler() in your module.**\n- **Uses the standard logging library**, so you can still customize your setup as much as you want/need. Plays nicely with your existing logging config files.\n- **Includes the very useful logging_tree module** for viewing your current logging configuration. `logx.print_diagram()`\n\n## Install\n\n >>> pip install logx\n\n## Contribute\n\nIssues and pull requests welcome, hit me. Am I doing logging completely wrong? Critique welcome, even if very pedantic.\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/djrobstep/logx", "keywords": "", "license": "Unlicense", "maintainer": "Robert Lechte", "maintainer_email": "robertlechte@gmail.com", "name": "logx", "package_url": "https://pypi.org/project/logx/", "platform": "", "project_url": "https://pypi.org/project/logx/", "project_urls": { "Homepage": "https://github.com/djrobstep/logx", "Repository": "https://github.com/djrobstep/logx" }, "release_url": "https://pypi.org/project/logx/0.1.1562053912/", "requires_dist": [ "pyyaml", "logging_tree" ], "requires_python": "", "summary": "best practice python logging with zero config", "version": "0.1.1562053912" }, "last_serial": 5475586, "releases": { "0.1.1519641991": [ { "comment_text": "", "digests": { "md5": "a0774f655393fbd84cff14b1722b0df1", "sha256": "9f5dfa3d8ef6a8e1cd4b2273ef13c06293cb60d16b97e9beaf7e8dda4be0bd51" }, "downloads": -1, "filename": "logx-0.1.1519641991-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "a0774f655393fbd84cff14b1722b0df1", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 6712, "upload_time": "2018-02-26T11:08:38", "url": "https://files.pythonhosted.org/packages/63/62/e26d56c987fc40b6b14658d8f6317523c62abc6d738733b8b793973ac045/logx-0.1.1519641991-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "717a2dd5c0986150388ed4f691b1a420", "sha256": "947c6ea15eb3ee97061e8bbdcd366a8f5be7c0bd55f0d149f2cb61c8148bbfd6" }, "downloads": -1, "filename": "logx-0.1.1519641991.tar.gz", "has_sig": false, "md5_digest": "717a2dd5c0986150388ed4f691b1a420", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4004, "upload_time": "2018-02-26T11:08:40", "url": "https://files.pythonhosted.org/packages/ee/c5/755e6978a88db27f777ec743a8b48839c6aeba19c376eb0155e2276edb29/logx-0.1.1519641991.tar.gz" } ], "0.1.1523254038": [ { "comment_text": "", "digests": { "md5": "2e8797342894ffb51c356673bf4baf9f", "sha256": "4700bcca13fc835ca93cd5818fbe75a6c9a20a7d099638e8c6a8509d665bda81" }, "downloads": -1, "filename": "logx-0.1.1523254038-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "2e8797342894ffb51c356673bf4baf9f", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 5928, "upload_time": "2018-04-09T06:17:39", "url": "https://files.pythonhosted.org/packages/c9/50/f53a4aa7c1f70a2083bb0f3b659ce926ea3160a333c9426ce5fdeb96ecd1/logx-0.1.1523254038-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "2f9e440aef644aada2388f23728272b2", "sha256": "b2b31f8b9bd87f2fc7c32d066aec68761f40296ed035efbcf4e5d90f2e3f6df8" }, "downloads": -1, "filename": "logx-0.1.1523254038.tar.gz", "has_sig": false, "md5_digest": "2f9e440aef644aada2388f23728272b2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4367, "upload_time": "2018-04-09T06:17:40", "url": "https://files.pythonhosted.org/packages/f2/93/00bb517b71a698cb2fb14bf3ceec2ff3e285212ef191c0f27eb5cd36d149/logx-0.1.1523254038.tar.gz" } ], "0.1.1562053912": [ { "comment_text": "", "digests": { "md5": "eb9538ef1b0abe9ddc458aba5b25c62a", "sha256": "c4982e9ae5791b130f2a4d51ac0871e2ef5b5f72b0093465c5bf3f7d6161ff5f" }, "downloads": -1, "filename": "logx-0.1.1562053912-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "eb9538ef1b0abe9ddc458aba5b25c62a", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 4498, "upload_time": "2019-07-02T07:51:53", "url": "https://files.pythonhosted.org/packages/04/d9/c9f2c30d17abb4b04f7879049936382b9e1f77114cc2264571a49d9cb5fd/logx-0.1.1562053912-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "6e67c2e75f95264052e5ba441d289829", "sha256": "90c4872d57c7e08ac8b4027626c00ec1896edabbb9e727218c37c95748e47651" }, "downloads": -1, "filename": "logx-0.1.1562053912.tar.gz", "has_sig": false, "md5_digest": "6e67c2e75f95264052e5ba441d289829", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3827, "upload_time": "2019-07-02T07:51:54", "url": "https://files.pythonhosted.org/packages/a0/f9/87fb91698929bc37d880a5ea3282175407aa4d376de32750ab156a6ab094/logx-0.1.1562053912.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "eb9538ef1b0abe9ddc458aba5b25c62a", "sha256": "c4982e9ae5791b130f2a4d51ac0871e2ef5b5f72b0093465c5bf3f7d6161ff5f" }, "downloads": -1, "filename": "logx-0.1.1562053912-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "eb9538ef1b0abe9ddc458aba5b25c62a", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 4498, "upload_time": "2019-07-02T07:51:53", "url": "https://files.pythonhosted.org/packages/04/d9/c9f2c30d17abb4b04f7879049936382b9e1f77114cc2264571a49d9cb5fd/logx-0.1.1562053912-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "6e67c2e75f95264052e5ba441d289829", "sha256": "90c4872d57c7e08ac8b4027626c00ec1896edabbb9e727218c37c95748e47651" }, "downloads": -1, "filename": "logx-0.1.1562053912.tar.gz", "has_sig": false, "md5_digest": "6e67c2e75f95264052e5ba441d289829", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3827, "upload_time": "2019-07-02T07:51:54", "url": "https://files.pythonhosted.org/packages/a0/f9/87fb91698929bc37d880a5ea3282175407aa4d376de32750ab156a6ab094/logx-0.1.1562053912.tar.gz" } ] }