{ "info": { "author": "Hong Yang", "author_email": "hong.meng.yang@outlook.com", "bugtrack_url": null, "classifiers": [ "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python :: 3" ], "description": "# Treelogger\n\nThis package adds structure to your application logs by creating a tree structure for functions that execute within functions.\n\nThese nested functions can be very troublesome to troubleshoot using a regular logger, but by using the tree logger, you can easily see the chain of events and drill down to where the error occurs. \n\nBelow is an example of what the tree would look like. The example shows how output of a function can be nested to the appropriate level. \n\n```\nFunction Stand_Up \n-\"Begin Standing Up\" \n--Function Move_Legs\n---\"Moving Legs\" \n----Function Check_Balance\n-----\"Balance is Good\"\n----Finish Check_Balance\n---\"Leg Movement Sucessful\"\n-- Finish Move_Legs \n-\"Stand Up took 1 Second(s)\" \nFinish Stand_up\n```\n\nTo begin tree logging, import the tree object and treewrap decorator into your modules. \n\n```\n#test.py \n\nfrom treelogger import tree, treewrap \n\n\n@treewrap()\ndef showthis(value):\n tree.log(value)\n\n return\n\n@treewrap()\ndef nest(value):\n\n tree.log('Nesting a value of %i' % value)\n\n showthis(value)\n\n tree.log('Nesting a value of %i + 1' % value)\n\n showthis(value + 1)\n\n```\n\nYou can then import things from your modules into one or more main modules. In the main module, use the tree = TreeLogger() form to create a logging instance.\n\nThe TreeLogger class instance is a global instance (kind of like sys.stdout) and all of your modules that imported tree will send their logs to the global tree. When defining the global tree, it has 2 default outputs: stdout and text file.\n\n```\n#main.py\nfrom test import showthis, nest\nfrom treelogger import tree, TreeLogger\n\ntree = TreeLogger()\nnest(123)\n\ntree.close_log()\n\n```\n\nRunning main.py would give you the output below. \n\n```\n\n\n\n\t\n\t\t Nesting a value of 123 \n\t\t\n\t\t\t 123 \n\t\t\n\t\t Nesting a value of 123 + 1 \n\t\t\n\t\t\t 124 \n \n\t\n\n\n\n```\n\nAs you can see, functions become nested and so do the logging messages for the functions. The resulting XML file can be searched using Xpath or visualized using an XML visualizer. \n\nA common mistake is to use the treewrap without the (). Unlike other decorators, the brackets are necessary for properly returning values from the decorated function.\n\n\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": "", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "treelogger", "package_url": "https://pypi.org/project/treelogger/", "platform": "", "project_url": "https://pypi.org/project/treelogger/", "project_urls": null, "release_url": "https://pypi.org/project/treelogger/0.15/", "requires_dist": null, "requires_python": "", "summary": "Create tree structures for your logs", "version": "0.15" }, "last_serial": 4328867, "releases": { "0.1": [ { "comment_text": "", "digests": { "md5": "426051c78f7ddf52d7fa3bba383983fb", "sha256": "1e2ca23cbda05279e511bc7503bb26a8fd87ec1009fbe7638585bd1cb9a67d15" }, "downloads": -1, "filename": "treelogger-0.1-py3-none-any.whl", "has_sig": false, "md5_digest": "426051c78f7ddf52d7fa3bba383983fb", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 4590, "upload_time": "2018-10-01T14:34:47", "url": "https://files.pythonhosted.org/packages/4f/a1/41b4e06570daf10cc5d45f91e4b98247c01fe10b92506956ef2807dbc8dc/treelogger-0.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "0cd19727fd16925d5f62d94c70e8fd92", "sha256": "c9fc5d8d09b2254c82ad82bb0782a9a9e9e8a3263d25517b0170e59edc14f8a8" }, "downloads": -1, "filename": "treelogger-0.1.tar.gz", "has_sig": false, "md5_digest": "0cd19727fd16925d5f62d94c70e8fd92", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3766, "upload_time": "2018-10-01T14:34:48", "url": "https://files.pythonhosted.org/packages/b6/f6/e7daaa5e43124d0af14f7ecc1dda3ed6eed824dc412acc9f8838cd4c0c85/treelogger-0.1.tar.gz" } ], "0.11": [ { "comment_text": "", "digests": { "md5": "187430c9e2ddaf9cd4770e12ac9eb126", "sha256": "2cd6c8729b646e771567c112f768e5c148027421c38ce8729722722d6c4395ea" }, "downloads": -1, "filename": "treelogger-0.11-py3-none-any.whl", "has_sig": false, "md5_digest": "187430c9e2ddaf9cd4770e12ac9eb126", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 5829, "upload_time": "2018-10-01T14:38:45", "url": "https://files.pythonhosted.org/packages/6f/78/21322c225629ce6cc7739cd132b15d91bb3b15590104791f6695c173a93f/treelogger-0.11-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "26d68388ee9c213a9176117332719e88", "sha256": "a07fc9819db528f77e675dfeead690a424e319e2c90c4c9d6c2815b7f94bd929" }, "downloads": -1, "filename": "treelogger-0.11.tar.gz", "has_sig": false, "md5_digest": "26d68388ee9c213a9176117332719e88", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3532, "upload_time": "2018-10-01T14:38:46", "url": "https://files.pythonhosted.org/packages/8d/7c/0e6598afb69f89c2289e754ab9509d2befd657f34ce2c136588aedd106bb/treelogger-0.11.tar.gz" } ], "0.12": [ { "comment_text": "", "digests": { "md5": "a13a7aacb1e33e84b2d750f26fe35c53", "sha256": "d9327111e7a6387c7064e6929e013176246afd47e4d0e1d971625a0837144623" }, "downloads": -1, "filename": "treelogger-0.12-py3-none-any.whl", "has_sig": false, "md5_digest": "a13a7aacb1e33e84b2d750f26fe35c53", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 5822, "upload_time": "2018-10-01T14:41:19", "url": "https://files.pythonhosted.org/packages/e3/a1/4d38a77562d4cc0bf6fbea2ba730fe6f59a44c6fd3edfb1131ca3e1a2e81/treelogger-0.12-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "c253083982603db6b71dda3b227fdd0f", "sha256": "9dfc90d862277c01cfa13021cbac1b29286157902b6d7e17ac31513fe6964c39" }, "downloads": -1, "filename": "treelogger-0.12.tar.gz", "has_sig": false, "md5_digest": "c253083982603db6b71dda3b227fdd0f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3528, "upload_time": "2018-10-01T14:41:20", "url": "https://files.pythonhosted.org/packages/e3/5b/1978514ff7df48e9eafd52677cd4bc2cd9c3967244cd56a2a2c10f8ecbcc/treelogger-0.12.tar.gz" } ], "0.13": [ { "comment_text": "", "digests": { "md5": "fd612a05fc0eccccc83e087a69c03d85", "sha256": "b7ad84e5ef2b235702a231ab0ddce609f85ef3a452740c06527aab4486967887" }, "downloads": -1, "filename": "treelogger-0.13-py3-none-any.whl", "has_sig": false, "md5_digest": "fd612a05fc0eccccc83e087a69c03d85", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 5792, "upload_time": "2018-10-01T14:45:24", "url": "https://files.pythonhosted.org/packages/af/d3/9b787bcb24d5592971048b7b66e5b934f70b391d2518e62e00f6565fcc74/treelogger-0.13-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "3c353c95dd39e5e19e34c85ef0cf480a", "sha256": "837ddd4a091b8bec2437e8958f931a5f9120638c824d38c4dca3bd1787b64f7c" }, "downloads": -1, "filename": "treelogger-0.13.tar.gz", "has_sig": false, "md5_digest": "3c353c95dd39e5e19e34c85ef0cf480a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3502, "upload_time": "2018-10-01T14:45:25", "url": "https://files.pythonhosted.org/packages/00/2e/33ad5aefc9877770e772086c60dc258a573a024877f74bf5721bb4ae9548/treelogger-0.13.tar.gz" } ], "0.14": [ { "comment_text": "", "digests": { "md5": "01c4929fd91d73affab80af1deff9df9", "sha256": "4495ec520eb31e27585d76493766b5e29803958e8a10f802701d2263f0cde425" }, "downloads": -1, "filename": "treelogger-0.14-py3-none-any.whl", "has_sig": false, "md5_digest": "01c4929fd91d73affab80af1deff9df9", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 6719, "upload_time": "2018-10-01T14:49:02", "url": "https://files.pythonhosted.org/packages/cb/3d/6b75b7799783c5a15fc625bed7bc273ffe6d7dd6be9bbbd3ae776f1ff73e/treelogger-0.14-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "42ea9e88ab61622a4e8abec3128053bd", "sha256": "25245aa880f417ebb1382380002c923dad50af006f576d1cc229c765325e61a9" }, "downloads": -1, "filename": "treelogger-0.14.tar.gz", "has_sig": false, "md5_digest": "42ea9e88ab61622a4e8abec3128053bd", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3831, "upload_time": "2018-10-01T14:49:03", "url": "https://files.pythonhosted.org/packages/35/90/99c600baecb8504ef19f83795c12236801f3c85856570d670ec6a9666f56/treelogger-0.14.tar.gz" } ], "0.15": [ { "comment_text": "", "digests": { "md5": "6a6069e7bbd25a47a5b2a3cd00fb1fff", "sha256": "68e124176db64f17bdde7a0c0e62b7ed46d095dc66ea413d868d2377552ccb14" }, "downloads": -1, "filename": "treelogger-0.15-py3-none-any.whl", "has_sig": false, "md5_digest": "6a6069e7bbd25a47a5b2a3cd00fb1fff", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 6649, "upload_time": "2018-10-01T14:51:39", "url": "https://files.pythonhosted.org/packages/9c/74/6841c46d33f90f431aabad65a533260614c594a5d7b0cc3bbf0e3861b7d1/treelogger-0.15-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "90ab985a24af2aa6cd9f1cab47c95978", "sha256": "fbfbeb495adf44d591f018e86094121fd2cd84ee9115b729fd50dd6c01f213dd" }, "downloads": -1, "filename": "treelogger-0.15.tar.gz", "has_sig": false, "md5_digest": "90ab985a24af2aa6cd9f1cab47c95978", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3719, "upload_time": "2018-10-01T14:51:40", "url": "https://files.pythonhosted.org/packages/74/50/e6423854475aed245e5794cafed84679496cd84adf6a51e11fd2098b7705/treelogger-0.15.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "6a6069e7bbd25a47a5b2a3cd00fb1fff", "sha256": "68e124176db64f17bdde7a0c0e62b7ed46d095dc66ea413d868d2377552ccb14" }, "downloads": -1, "filename": "treelogger-0.15-py3-none-any.whl", "has_sig": false, "md5_digest": "6a6069e7bbd25a47a5b2a3cd00fb1fff", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 6649, "upload_time": "2018-10-01T14:51:39", "url": "https://files.pythonhosted.org/packages/9c/74/6841c46d33f90f431aabad65a533260614c594a5d7b0cc3bbf0e3861b7d1/treelogger-0.15-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "90ab985a24af2aa6cd9f1cab47c95978", "sha256": "fbfbeb495adf44d591f018e86094121fd2cd84ee9115b729fd50dd6c01f213dd" }, "downloads": -1, "filename": "treelogger-0.15.tar.gz", "has_sig": false, "md5_digest": "90ab985a24af2aa6cd9f1cab47c95978", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3719, "upload_time": "2018-10-01T14:51:40", "url": "https://files.pythonhosted.org/packages/74/50/e6423854475aed245e5794cafed84679496cd84adf6a51e11fd2098b7705/treelogger-0.15.tar.gz" } ] }