{ "info": { "author": "KeisukeYamashita", "author_email": "19yamashita15@gmail.com", "bugtrack_url": null, "classifiers": [ "License :: OSI Approved :: MIT License", "Programming Language :: Python :: 3.6" ], "description": "# pyplelogger\n\n[![Open Source Love](https://badges.frapsoft.com/os/v1/open-source.svg?v=103)](https://github.com/ellerbrock/open-source-badges/)\n[![Build Status](https://travis-ci.com/KeisukeYamashita/pylogger.svg?branch=master)](https://travis-ci.com/KeisukeYamashita/pylogger)\n[![Python 3.3](https://img.shields.io/badge/python->3.3-blue.svg)](https://www.python.org/downloads/release/python-330/)\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\n\n[![Maintainability](https://api.codeclimate.com/v1/badges/a489ad892561ae5ece20/maintainability)](https://codeclimate.com/github/KeisukeYamashita/pyplelogger/maintainability)\n[![contributions welcome](https://img.shields.io/badge/contributions-welcome-brightgreen.svg?style=flat)](https://github.com/dwyl/esta/issues)\n\n> Simple logger written in python mostly for command line interface tools. \n\n\n## Install\n\n```shell\npip install pyplelogger\n```\n\n## Usage\n\n### Simple usage\n\nThis is the atomic usage. Import this and print it out.\n\n```python\nfrom pyplelogger import Logger\n\nlog = Logger(__name__).build()\nlog.info(\"hogehoge\")\n\nINFO 2018-11-26 23:11:15,109 test.py:main in line 4: hogehoge\n```\n\nThe default log level is `INFO` and you have to pass unique name for each handler. \n\n### Change default logger level\n\nYou can change logger level entire the project.\n\n```python\nimport logging\nfrom pyplelogger import Logger\n\nLogger.set_default_log_level(logging.WARNING)\n\nlog = Logger(__name__).build()\nlog.info(\"hogehoge\")\n\n#=> Nothing is pritted out\n```\n\nAnd once you set teh default log level, it is valid in entire project.\n\nThe logger levels are defined in `logging` library.\n\n| level | number |\n|:----|:----|\n| CRITICAL | 50 |\n| ERROR | 40 |\n| WARNING | 30 |\n| INFO | 20 |\n| DEBUG | 10 |\n| NOTSET | 0 |\n\nLet's say you have a `script1.py` and `script2.py`.\n\nIf you change defaul log level in `script1.py` like this,\n\n```python\nimport logging\nfrom pyplelogger import Logger\n\nLogger.set_default_log_level(logging.WARNING)\n```\n\nit is valid in `script2.py` too.\n\n```python\nimport logging\nfrom pyplelogger import Logger\n\nlog = Logger(__name__).build()\nlog.info(\"hogehoge\")\n\n#=> Nothing is pritted out\n```\n\n### Change logger level\n\nThis is similier to changing default log level but this method changes log level for one logger.\n\nFuthermore, the method to change default log level is a class method but, this method is a instance method, so it will only effect the instance.\n\n```python\nimport logging\nfrom pyplelogger import Logger\n\nlog = Logger(__name__).set_log_level(logging.WARNING).build()\nlog.info(\"hogehoge\")\n\n#=> Nothing is pritted out\n```\n\n### Change default format\n\nYou can change default format of every instance of Logger by this method. Pass string object describing logging format.\n\n```python\nformat = '%(levelname)s %(asctime)s %(message)s'\nLogger.set_default_format(format)\n\nlog = Logger(__name__).build()\nlog.info(\"hogehoge\")\n```\n\nThis will print out this logs.\n\n```shell\nINFO 2018-11-28 18:11:15,109 hogehoge\n```\n\n### Change format\n\nSpecify format in string. The default format is `'%(levelname)s %(asctime)s %(module)s.py:%(funcName)s in line %(lineno)d: %(message)s'`.\n\n```python\nfrom pyplelogger import Logger\n\nlog_before = Logger(__name__).build()\nlog_after = Logger(__name__ + \"after\").set_format('%(levelname)s %(message)s').build()\n\nlog_before.info(\"before\")\nlog_after.info(\"after\")\n```\n\nHere is the output.\n\n```shell\nINFO 2018-11-26 23:11:15,109 test.py:main in line 4: before\nINFO after\n``` \n\n## With Argparse\n\nThis has good integration with [argparse](https://docs.python.jp/3/library/argparse.html), a library for creating cli tool.\n\n### Verbose flag\n\nThis is just a simple example of the verbose flag.\n\n```python\nimport argparse\n\nparser = argparse.ArgumentParser()\nparser.add_argument('--verbose', '-v', action='count')\n\nargs = parser.parse_args()\n```\n\nNow you can get number of `v` flags like \n\n- `-v`: 1\n- `-vvv`: 3\n\nYou can convert to log level by Using `IncrementalLoggerLevel` IntEnum Class.\n\n```python\n# 1 is debug level\n\ncount = 1\n\nlog_level = IncrementalLoggerLevel.convert_logger_level(1)\n\nlog = Logger().set_log_level(log_level)\nlog.DEBUG(\"hoge\")\n```\n\nThen you will see\n\n```\n#=> \nDEBUG 2018-11-26 23:11:15,109 test.py:main in line 3: hoge\n```\n\nThe default level of logging is `INFO` in current version.\n\n| level | number | count |\n|:----|:----|:---|\n| CRITICAL | 50 | - |\n| ERROR | 40 | - |\n| WARNING | 30 | - |\n| INFO | 20 | 0 |\n| DEBUG | 10 | 1 | \n| NOTSET | 0 | 2 |\n\n## To contribute\n\nWe welcome for your contribution.\n\n1. Fork this project\n2. Run `just` to install dependencies.\n3. Give us a pull request\n\n## Member\n\n- KeisukeYamashita: Maintainer and creater\n\n", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "", "keywords": "logger cli logging", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "pyplelogger", "package_url": "https://pypi.org/project/pyplelogger/", "platform": "", "project_url": "https://pypi.org/project/pyplelogger/", "project_urls": null, "release_url": "https://pypi.org/project/pyplelogger/0.1.8/", "requires_dist": null, "requires_python": "", "summary": "Simple logger in python mainly used for CLI tool like argparse", "version": "0.1.8" }, "last_serial": 4552424, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "7248581f342e9d6b771adce91dd69d05", "sha256": "9c3475418a1b96dba946cac5ba369d825af4eaf5369b1e3c2986eda27dbab026" }, "downloads": -1, "filename": "pyplelogger-0.1.0-py3-none-any.whl", "has_sig": false, "md5_digest": "7248581f342e9d6b771adce91dd69d05", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 1966, "upload_time": "2018-11-26T17:05:08", "url": "https://files.pythonhosted.org/packages/a2/c8/9137ef04ae64bb2bf7fecfb5ff5d97d4b62abeb6e1751a758ce88791e673/pyplelogger-0.1.0-py3-none-any.whl" } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "21b82808f9485babf05682c4cca65044", "sha256": "fd5412f5575a787ff9abbc79d9d536ea4a83db186242c20e874eaa9ca6a5ed78" }, "downloads": -1, "filename": "pyplelogger-0.1.1-py3-none-any.whl", "has_sig": false, "md5_digest": "21b82808f9485babf05682c4cca65044", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 1989, "upload_time": "2018-11-26T17:06:41", "url": "https://files.pythonhosted.org/packages/bf/71/8af51404311387a6ecdfcc1b3f630d05e60d3ed8c7d3b5993b9159274e7f/pyplelogger-0.1.1-py3-none-any.whl" } ], "0.1.2": [ { "comment_text": "", "digests": { "md5": "a80795567933168d1c441569df21ca90", "sha256": "2a0b98b55ceea40eabee4928d1274044df45db6b164eac56f0efa17e578df356" }, "downloads": -1, "filename": "pyplelogger-0.1.2-py3-none-any.whl", "has_sig": false, "md5_digest": "a80795567933168d1c441569df21ca90", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 4162, "upload_time": "2018-11-26T17:18:44", "url": "https://files.pythonhosted.org/packages/7f/55/55883a600cb85a8be525ff16d8e935dfd64d9e86742e02ae41edc630db62/pyplelogger-0.1.2-py3-none-any.whl" } ], "0.1.3": [ { "comment_text": "", "digests": { "md5": "1518362bc1503fc646f8e374cf1b0a23", "sha256": "765eb7c1b4c6aacb2174c6d25dd10f247cf06c37e71086a718c2c3a185716e20" }, "downloads": -1, "filename": "pyplelogger-0.1.3-py3-none-any.whl", "has_sig": false, "md5_digest": "1518362bc1503fc646f8e374cf1b0a23", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 4507, "upload_time": "2018-11-26T18:03:00", "url": "https://files.pythonhosted.org/packages/ae/e4/0611f36ca362c78e41a21279bd65bf01250de5dc49ed6989c3b0a1e56366/pyplelogger-0.1.3-py3-none-any.whl" } ], "0.1.4": [ { "comment_text": "", "digests": { "md5": "d9827df4f75dffb7189b01f71e18abcc", "sha256": "45a8502d075c9d6a94c8f1fc0738687e981f78aaf4541b51a70de32c34db8480" }, "downloads": -1, "filename": "pyplelogger-0.1.4-py3-none-any.whl", "has_sig": false, "md5_digest": "d9827df4f75dffb7189b01f71e18abcc", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 4564, "upload_time": "2018-11-28T09:35:55", "url": "https://files.pythonhosted.org/packages/26/2f/7377f381b7f4369bc779178ffbd5ebe4bc3c3dc26a3b74f85dfe2f0d66ad/pyplelogger-0.1.4-py3-none-any.whl" } ], "0.1.5": [ { "comment_text": "", "digests": { "md5": "b3445093b537d691a6ab663b3e7b5170", "sha256": "c8592fec85b83be09357338087d552fbc689b7107a14e75cf806da66a6fd5a06" }, "downloads": -1, "filename": "pyplelogger-0.1.5-py3-none-any.whl", "has_sig": false, "md5_digest": "b3445093b537d691a6ab663b3e7b5170", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 4566, "upload_time": "2018-11-28T18:55:06", "url": "https://files.pythonhosted.org/packages/8b/7f/cfb3311976505f8a8f90ac58ebe83adfcfa93d3b720c212e85f6c08c879c/pyplelogger-0.1.5-py3-none-any.whl" } ], "0.1.6": [ { "comment_text": "", "digests": { "md5": "e1383533704a667a9e63f6f4d332c213", "sha256": "1dee083f77c6e8e6928e8b188fdd32ddc1fc922416741a20140c5c9694b63ee6" }, "downloads": -1, "filename": "pyplelogger-0.1.6-py3-none-any.whl", "has_sig": false, "md5_digest": "e1383533704a667a9e63f6f4d332c213", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 4564, "upload_time": "2018-12-02T12:32:29", "url": "https://files.pythonhosted.org/packages/c7/6e/2a1b46fbaad148ef2a5e47f9edce9dc937fea6ac507dd03f159aeb6c24f9/pyplelogger-0.1.6-py3-none-any.whl" } ], "0.1.7": [ { "comment_text": "", "digests": { "md5": "1037a6e7ecfdf4e5690db7883592cf23", "sha256": "fb607f226f2679c88ded5e7a2897f4dfe743d2c37c469734f6ab5ddfd1a580ea" }, "downloads": -1, "filename": "pyplelogger-0.1.7-py3-none-any.whl", "has_sig": false, "md5_digest": "1037a6e7ecfdf4e5690db7883592cf23", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 6269, "upload_time": "2018-12-02T12:44:42", "url": "https://files.pythonhosted.org/packages/e2/51/3c1b9dc3859f4da86e786b420e8976d41c0777ad4f4d7be1310f7cf1bc4f/pyplelogger-0.1.7-py3-none-any.whl" } ], "0.1.8": [ { "comment_text": "", "digests": { "md5": "9e73e14a6d846c960781f0b4abd19152", "sha256": "6bdc16e314ed63c0e6ab6b1d010491cd82d04aa40db0033e8cc794b47ba68eee" }, "downloads": -1, "filename": "pyplelogger-0.1.8-py3-none-any.whl", "has_sig": false, "md5_digest": "9e73e14a6d846c960781f0b4abd19152", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 6293, "upload_time": "2018-12-02T12:45:56", "url": "https://files.pythonhosted.org/packages/02/4c/d6cc5e47f98be6dad1b3cef874aa47b1308fc94466ccfb7bafa9c3cc88cf/pyplelogger-0.1.8-py3-none-any.whl" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "9e73e14a6d846c960781f0b4abd19152", "sha256": "6bdc16e314ed63c0e6ab6b1d010491cd82d04aa40db0033e8cc794b47ba68eee" }, "downloads": -1, "filename": "pyplelogger-0.1.8-py3-none-any.whl", "has_sig": false, "md5_digest": "9e73e14a6d846c960781f0b4abd19152", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 6293, "upload_time": "2018-12-02T12:45:56", "url": "https://files.pythonhosted.org/packages/02/4c/d6cc5e47f98be6dad1b3cef874aa47b1308fc94466ccfb7bafa9c3cc88cf/pyplelogger-0.1.8-py3-none-any.whl" } ] }