{ "info": { "author": "Takayuki SHIMIZUKAWA", "author_email": "shimizukawa@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Environment :: Other Environment", "License :: OSI Approved :: Apache Software License", "Programming Language :: Python", "Programming Language :: Python :: 2", "Programming Language :: Python :: 2.6", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.2", "Programming Language :: Python :: 3.3", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5", "Topic :: System :: Logging", "Topic :: Utilities" ], "description": "=============================================\nltsvlogger : logging with labeled tsv format\n=============================================\n\nBasic Features\n===============\n\n* Provide ltsvlogger.LTSVFormatter to format ltsv output.\n* Provide ltsvlogger.LTSVLoggerAdapter for ease to use.\n\nRequirements\n-------------\n\n- Python 2.6, 2.7, 3.2, 3.3, 3.4, 3.5, pypy.\n\n\nInstallation\n=============\n\nRecommend: use virtualenv for this procedure::\n\n $ pip install ltsvlogger\n\nIf you want to install unreleased version::\n\n $ pip install https://bitbucket.org/shimizukawa/ltsvlogger/get/tip.zip\n\nUsing example\n==============\n\nsetup logger by code\n---------------------\n\n::\n\n import logging\n from ltsvlogger import LTSVFormatter, LTSVLoggerAdapter\n\n formatter = LTSVFormatter(fields={\n 'asctime': 'time',\n 'user': 'user',\n 'host': 'host',\n 'message': 'message',\n })\n\n logger = logging.getLogger('code')\n hdr = logging.StreamHandler()\n hdr.setLevel(logging.INFO)\n hdr.setFormatter(formatter)\n logger.addHandler(hdr)\n\n # extra keyword argument values fill into format string placeholder.\n # If formatter did not have 'user' and host' placeholder, these\n # values will be simply omitted.\n logger.error(\n 'This is a error message with %s',\n 'extra arguments',\n extra=dict(\n user='spam',\n host='ham.example.com',\n )\n )\n\noutput sample::\n\n host:ham.example.com\\tmessage:This is a error message with extra arguments\\tuser:spam\\ttime:2013-09-27T09:21:03+00:00\n\n\nIf you want to output fields in order, you can setup formatter with fmt argument like logging.Formatter parameter::\n\n formatter = LTSVFormatter(\n 'time:%(asctime)s\\tuser:%(user)s\\thost:%(host)s\\tmessage:%(message)s'\n )\n\n\nsetup logger by code with LTSVLoggerAdapter\n--------------------------------------------\n\n::\n\n import logging\n from ltsvlogger import LTSVFormatter, LTSVLoggerAdapter\n\n formatter = LTSVFormatter()\n\n logger = logging.getLogger('adapter')\n hdr = logging.StreamHandler()\n hdr.setLevel(logging.INFO)\n hdr.setFormatter(formatter)\n logger.addHandler(hdr)\n\n # LTSVLoggerAdapter will extract keyword argument into log format.\n ltsvlogger = LTSVLoggerAdapter(logger)\n\n ltsvlogger.error(\n 'This is a error message with %s',\n 'keyword arguments',\n user='spam',\n host='ham.example.com',\n )\n\n\noutput sample::\n\n process_name:MainProcess\\tlogger_name:sample\\tthread_id:140654083024640\\ttime:2013-09-27T08:49:53+00:00\\tprocess_id:17807\\tmessage:This is a error message with keyword arguments\\thost:ham.example.com\\tuser:spam\\tthread_name:MainThread\\tlog_level:ERROR\n\n\nsetup logger by config\n-----------------------\n\nPrepare logger.ini for logger::\n\n [loggers]\n keys = root,demo\n\n [handlers]\n keys = ltsvhdr\n\n [formatters]\n keys = ltsvfmt\n\n [logger_root]\n level = DEBUG\n handlers =\n\n [logger_demo]\n level = DEBUG\n handlers = ltsvhdr\n qualname = demo\n\n [handler_ltsvhdr]\n class = StreamHandler\n args = (sys.stderr,)\n level = DEBUG\n formatter = ltsvfmt\n\n [formatter_ltsvfmt]\n format = time:%(asctime)s\\tlogger_name:%(name)s\\tmessage:%(message)s\n datefmt = %Y-%m-%dT%H:%M:%S%z\n class = ltsvlogger.LTSVFormatter\n\nand use::\n\n import logging.config\n logging.config.fileConfig('logger.ini')\n logger = logging.getLogger('demo')\n\n ltsvlogger = LTSVLoggerAdapter(logger)\n\n ltsvlogger.warning(\n 'This is a warning message with %s',\n 'keyword arguments',\n user='spam',\n host='ham.example.com',\n )\n\noutput sample::\n\n time:2013-09-27T08:49:53+00:00\\tlogger_name:demo\\tmessage:This is a warning message with keyword arguments\\thost:ham.example.com\\tuser:spam\n\n\nCHANGES\n========\n\n0.9.1 (2015-09-28)\n------------------\nBug fixes.\n\n* PR#1. Fix typo. Thanks to WAKAYAMA shirou.\n* PR#2. Fix: remove redundant tab when no extra kwargs is passed. Thanks to\n Toshiya Kawasaki.\n\n\n0.9.0 (2013-10-02)\n------------------\nFirst release.\n\n* Provide ltsvlogger.LTSVFormatter\n* Provide ltsvlogger.LTSVLoggerAdapter", "description_content_type": null, "docs_url": null, "download_url": "UNKNOWN", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://bitbucket.org/shimizukawa/ltsvlogger", "keywords": "", "license": "UNKNOWN", "maintainer": "", "maintainer_email": "", "name": "ltsvlogger", "package_url": "https://pypi.org/project/ltsvlogger/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/ltsvlogger/", "project_urls": { "Download": "UNKNOWN", "Homepage": "https://bitbucket.org/shimizukawa/ltsvlogger" }, "release_url": "https://pypi.org/project/ltsvlogger/0.9.1/", "requires_dist": null, "requires_python": null, "summary": "labeled TSV logger.", "version": "0.9.1" }, "last_serial": 1741180, "releases": { "0.9.0": [ { "comment_text": "", "digests": { "md5": "6a3dbdae299749b15ec859aaf8398a56", "sha256": "565e09a5165105578779a95b1142de995bf0912d145c1c6e120c7dcd56517086" }, "downloads": -1, "filename": "ltsvlogger-0.9.0.tar.gz", "has_sig": false, "md5_digest": "6a3dbdae299749b15ec859aaf8398a56", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4593, "upload_time": "2013-10-02T00:39:55", "url": "https://files.pythonhosted.org/packages/25/b9/2edf210508271d371e971e79e9783da19501fae8ffb91326bb3b16259db7/ltsvlogger-0.9.0.tar.gz" } ], "0.9.0dev-20131002": [ { "comment_text": "", "digests": { "md5": "fef5c07f35300267b312432cf552b8d2", "sha256": "804f5f31faefa7c35177bfe67502087ec5d67bcad1fe02136d2a5f1385d56d77" }, "downloads": -1, "filename": "ltsvlogger-0.9.0dev-20131002.tar.gz", "has_sig": false, "md5_digest": "fef5c07f35300267b312432cf552b8d2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4620, "upload_time": "2013-10-02T00:38:12", "url": "https://files.pythonhosted.org/packages/5c/e7/d06fa3f0bb95ecc98bde02f0c27849a1d92ae31a0484791f9bb40a89ac6b/ltsvlogger-0.9.0dev-20131002.tar.gz" } ], "0.9.1": [ { "comment_text": "", "digests": { "md5": "4ae2807a5b2fe19c3e8e6a140317f722", "sha256": "e44c29766dfddd73405310811be8eee35639bb77b61c5b14d209971fe67593d9" }, "downloads": -1, "filename": "ltsvlogger-0.9.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "4ae2807a5b2fe19c3e8e6a140317f722", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 6524, "upload_time": "2015-09-27T23:35:38", "url": "https://files.pythonhosted.org/packages/90/4e/8859bef2f4517c723f742272f1894ec96037a0dc36b2c46ab541b8c0513f/ltsvlogger-0.9.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "aee016258fce9aae11d2a758e872b5bb", "sha256": "e7f44a6ed4580614288bd50b2fdd940a9441b74d1f160e5da22379ba34469ba3" }, "downloads": -1, "filename": "ltsvlogger-0.9.1.tar.gz", "has_sig": false, "md5_digest": "aee016258fce9aae11d2a758e872b5bb", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4722, "upload_time": "2015-09-27T23:30:49", "url": "https://files.pythonhosted.org/packages/bf/9e/98da2fdd4daf7b253c9d6ce584eeeba02d0003f2c5f83c8d1ef1243c7832/ltsvlogger-0.9.1.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "4ae2807a5b2fe19c3e8e6a140317f722", "sha256": "e44c29766dfddd73405310811be8eee35639bb77b61c5b14d209971fe67593d9" }, "downloads": -1, "filename": "ltsvlogger-0.9.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "4ae2807a5b2fe19c3e8e6a140317f722", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 6524, "upload_time": "2015-09-27T23:35:38", "url": "https://files.pythonhosted.org/packages/90/4e/8859bef2f4517c723f742272f1894ec96037a0dc36b2c46ab541b8c0513f/ltsvlogger-0.9.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "aee016258fce9aae11d2a758e872b5bb", "sha256": "e7f44a6ed4580614288bd50b2fdd940a9441b74d1f160e5da22379ba34469ba3" }, "downloads": -1, "filename": "ltsvlogger-0.9.1.tar.gz", "has_sig": false, "md5_digest": "aee016258fce9aae11d2a758e872b5bb", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4722, "upload_time": "2015-09-27T23:30:49", "url": "https://files.pythonhosted.org/packages/bf/9e/98da2fdd4daf7b253c9d6ce584eeeba02d0003f2c5f83c8d1ef1243c7832/ltsvlogger-0.9.1.tar.gz" } ] }