{ "info": { "author": "Javier Ruere", "author_email": "javier@ruere.com.ar", "bugtrack_url": null, "classifiers": [ "Development Status :: 5 - Production/Stable", "Intended Audience :: Developers", "License :: OSI Approved :: GNU Lesser General Public License v3 or later (LGPLv3+)", "Operating System :: POSIX", "Programming Language :: Python :: 2", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", "Programming Language :: Python :: Implementation :: CPython", "Topic :: Software Development :: Libraries :: Python Modules" ], "description": "# multiprocessing-logging\n\n[![Run Status](https://api.shippable.com/projects/57c8a389407d610f0052c211/badge?branch=master)](https://app.shippable.com/projects/57c8a389407d610f0052c211)\n[![Coverage Badge](https://api.shippable.com/projects/57c8a389407d610f0052c211/coverageBadge?branch=master)](https://app.shippable.com/projects/57c8a389407d610f0052c211)\n[![Supported Python versions](https://img.shields.io/pypi/pyversions/multiprocessing-logging.svg)](https://pypi.python.org/pypi/multiprocessing-logging/)\n[![License](https://img.shields.io/pypi/l/multiprocessing-logging.svg)](https://pypi.python.org/pypi/multiprocessing-logging/)\n\n\nWhen using the `multiprocessing` module, logging becomes less useful since\nsub-processes should log to individual files/streams or there's the risk of\nrecords becoming garbled.\n\nThis simple module implements a `Handler` that when set on the root\n`Logger` will handle tunneling the records to the main process so that\nthey are handled correctly.\n\nIt's currently tested in Linux and Python 2.7 & 3.5+.\n\nPypy3 hangs on the tests so I don't recommend using it.\n\nPypy appears to be working, recently.\n\nIt was tested by users and reported to work on Windows with Python 3.5 and 3.6.\n\n# Origin\n\nThis library was taken verbatim from a [StackOverflow post](http://stackoverflow.com/questions/641420/how-should-i-log-while-using-multiprocessing-in-python)\nand extracted into a module so that I wouldn't have to copy the code in every\nproject.\n\nLater, several improvements have been contributed.\n\n# Usage\n\nBefore you start logging but after you configure the logging framework (maybe with `logging.basicConfig(...)`), do the following:\n\n```py\nimport multiprocessing_logging\n\nmultiprocessing_logging.install_mp_handler()\n```\n\nand that's it.\n\n## With multiprocessing.Pool\n\nWhen using a Pool, make sure `install_mp_handler` is called before the Pool is instantiated, for example:\n\n```py\nimport logging\nfrom multiprocessing import Pool\nfrom multiprocessing_logging import install_mp_handler\n\nloggig.basicConfig(...)\ninstall_mp_handler()\npool = Pool(...)\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": "https://github.com/jruere/multiprocessing-logging", "keywords": "multiprocessing logging logger handler", "license": "LGPLv3", "maintainer": "", "maintainer_email": "", "name": "multiprocessing-logging", "package_url": "https://pypi.org/project/multiprocessing-logging/", "platform": "POSIX", "project_url": "https://pypi.org/project/multiprocessing-logging/", "project_urls": { "Homepage": "https://github.com/jruere/multiprocessing-logging" }, "release_url": "https://pypi.org/project/multiprocessing-logging/0.3.0/", "requires_dist": null, "requires_python": "", "summary": "Logger for multiprocessing applications", "version": "0.3.0" }, "last_serial": 5440110, "releases": { "0.1": [ { "comment_text": "", "digests": { "md5": "cec959fee374d35a8b8fbf716db47075", "sha256": "701e59d4815e191cd763675b3d1b0db1a28a2560114eafa474902a7e3e7b18b0" }, "downloads": -1, "filename": "multiprocessing_logging-0.1-py2-none-any.whl", "has_sig": false, "md5_digest": "cec959fee374d35a8b8fbf716db47075", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 4339, "upload_time": "2015-01-22T22:49:51", "url": "https://files.pythonhosted.org/packages/55/11/9a335078e79e3b6f2b3a84c5fb386b301ec8bde53c16c00527ecd806c41c/multiprocessing_logging-0.1-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "d735c05be37462392a978299d5045ebd", "sha256": "3b13b66e283d82fa8e88aa2deec23043cff0842e103874ed9887b4c12d4a812c" }, "downloads": -1, "filename": "multiprocessing-logging-0.1.tar.gz", "has_sig": false, "md5_digest": "d735c05be37462392a978299d5045ebd", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2494, "upload_time": "2015-01-22T22:49:48", "url": "https://files.pythonhosted.org/packages/db/e2/ecab816f2d7ee9c9cab54942142a1b46d674e5098f08b0c1f1fc5c507f94/multiprocessing-logging-0.1.tar.gz" } ], "0.2": [ { "comment_text": "", "digests": { "md5": "8e5e04987f8a2f3fb7f79604c3fad881", "sha256": "60640f3ab0e82ddf065ebed7c7f49089e876705ad4356ff8a001cba0fe44f2fc" }, "downloads": -1, "filename": "multiprocessing_logging-0.2-py3-none-any.whl", "has_sig": false, "md5_digest": "8e5e04987f8a2f3fb7f79604c3fad881", "packagetype": "bdist_wheel", "python_version": "3.4", "requires_python": null, "size": 4321, "upload_time": "2015-03-28T02:34:38", "url": "https://files.pythonhosted.org/packages/1e/e6/132b7cdbe4aacd1cbef50a0ac2f5d6fb5b8e591c398884307c7afe5ceebc/multiprocessing_logging-0.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "8b841f11c034911a6cd0d3d44f3e904f", "sha256": "5a6f0e2e90c8d53ec14045065be2cd58461735db92106a8b09f95ecade1c6849" }, "downloads": -1, "filename": "multiprocessing-logging-0.2.tar.gz", "has_sig": false, "md5_digest": "8b841f11c034911a6cd0d3d44f3e904f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2476, "upload_time": "2015-03-28T02:34:35", "url": "https://files.pythonhosted.org/packages/b4/21/db44cc9a25fec92b4681d3231edb7e952e446c3ca076394464e6c00e5e2b/multiprocessing-logging-0.2.tar.gz" } ], "0.2.1": [ { "comment_text": "", "digests": { "md5": "88672cc654540291608a4aa29814c6a9", "sha256": "e2fe9aa63a65e17f619d05b84677b41f4906894273ef4714fc75b09ee7d37b3d" }, "downloads": -1, "filename": "multiprocessing_logging-0.2.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "88672cc654540291608a4aa29814c6a9", "packagetype": "bdist_wheel", "python_version": "3.4", "requires_python": null, "size": 4359, "upload_time": "2015-03-28T02:36:52", "url": "https://files.pythonhosted.org/packages/c8/17/c1e4e7e0ceb34ff348e348ddaa09bc149f7f87770e09e00981aeed96d299/multiprocessing_logging-0.2.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "240f2e9252868b7b97dab41574130ebf", "sha256": "1c3f1fd9dbd74e92462de207ffe658bb9a494d9a34c7b928b687e7560ce6dfa4" }, "downloads": -1, "filename": "multiprocessing-logging-0.2.1.tar.gz", "has_sig": false, "md5_digest": "240f2e9252868b7b97dab41574130ebf", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2499, "upload_time": "2015-03-28T02:36:48", "url": "https://files.pythonhosted.org/packages/5a/5a/f957f7ec1ba41ad7e31ae08949b2169688104029ba1f8ad5d3252b1bc435/multiprocessing-logging-0.2.1.tar.gz" } ], "0.2.2": [ { "comment_text": "", "digests": { "md5": "c994bfadca3bb783f6ed08cfa9792ed2", "sha256": "6e1365bcdb16b9fb41201668b05425e80503376bddd897d45458c63b49e28239" }, "downloads": -1, "filename": "multiprocessing_logging-0.2.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "c994bfadca3bb783f6ed08cfa9792ed2", "packagetype": "bdist_wheel", "python_version": "3.4", "requires_python": null, "size": 4952, "upload_time": "2016-01-15T04:52:52", "url": "https://files.pythonhosted.org/packages/f5/ce/2fc9ff60ae031a07fd27d582a878005fc081bb5916c9b75d73e7ac5e7a91/multiprocessing_logging-0.2.2-py2.py3-none-any.whl" } ], "0.2.3": [ { "comment_text": "", "digests": { "md5": "cb5a1d2e9dda4ddc0d6aee76f11b13a3", "sha256": "7f1ea2934714dd8a25a283823c0baad658d1fd651d135dd981af5f4979dbc5fd" }, "downloads": -1, "filename": "multiprocessing_logging-0.2.3-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "cb5a1d2e9dda4ddc0d6aee76f11b13a3", "packagetype": "bdist_wheel", "python_version": "3.5", "requires_python": null, "size": 4965, "upload_time": "2016-02-15T02:51:06", "url": "https://files.pythonhosted.org/packages/ec/7e/9d2a7cb81d0213b6f0055c9304855174de887b0a18a3b4e7be0c57d49f17/multiprocessing_logging-0.2.3-py2.py3-none-any.whl" } ], "0.2.4": [ { "comment_text": "", "digests": { "md5": "280899d4d521398e9ddceca8e122e25c", "sha256": "c5cc2c9c03e1d9b7383fb2f07f5f61fd563fee623d2be4649900a4c19eb0cce4" }, "downloads": -1, "filename": "multiprocessing_logging-0.2.4-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "280899d4d521398e9ddceca8e122e25c", "packagetype": "bdist_wheel", "python_version": "3.5", "requires_python": null, "size": 4985, "upload_time": "2016-02-19T23:52:21", "url": "https://files.pythonhosted.org/packages/62/cd/adfe5be532fd2870e34f4afc35354e96fbc30dff6e7d88fb9dacc93b649f/multiprocessing_logging-0.2.4-py2.py3-none-any.whl" } ], "0.2.5": [ { "comment_text": "", "digests": { "md5": "64eee05aa4376d98bf0d044c78aa29d5", "sha256": "c761016995392c1984993f34543a00b429ad88303982d4e41a723b8ce50ff063" }, "downloads": -1, "filename": "multiprocessing_logging-0.2.5-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "64eee05aa4376d98bf0d044c78aa29d5", "packagetype": "bdist_wheel", "python_version": "3.6", "requires_python": null, "size": 5212, "upload_time": "2017-11-11T22:31:27", "url": "https://files.pythonhosted.org/packages/da/78/b346f11e1ac66dde4a0c742f6ab8ce516cd332113b277450d564eb3d2b65/multiprocessing_logging-0.2.5-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "82a609fc2eb92b50389ee802732be40b", "sha256": "c12cf1b9e90f15ee94adf5b6e898cfc5a8b0fc3555dfe5d24177bfc11481eb22" }, "downloads": -1, "filename": "multiprocessing-logging-0.2.5.tar.gz", "has_sig": false, "md5_digest": "82a609fc2eb92b50389ee802732be40b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4081, "upload_time": "2017-11-11T22:30:29", "url": "https://files.pythonhosted.org/packages/b2/59/9299d93ea96afc5dcb1b7c5d4e8ceaf9a6f42dddda66061df2aeaa426391/multiprocessing-logging-0.2.5.tar.gz" } ], "0.2.6": [ { "comment_text": "", "digests": { "md5": "b7783a8c449135e5bb344b3f0caa3522", "sha256": "bbc437ab7a3803487267b13ccb7bc109633e85d2b509ea07e957f41065f4c908" }, "downloads": -1, "filename": "multiprocessing_logging-0.2.6-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "b7783a8c449135e5bb344b3f0caa3522", "packagetype": "bdist_wheel", "python_version": "3.6", "requires_python": null, "size": 5300, "upload_time": "2018-01-29T18:36:45", "url": "https://files.pythonhosted.org/packages/65/eb/1c3db9596eddb2bd1d1f8153dcaf2d9f2c7e144f4832d1b1449f681a0a7a/multiprocessing_logging-0.2.6-py2.py3-none-any.whl" } ], "0.3.0": [ { "comment_text": "", "digests": { "md5": "08cd33e412b28f946fba4e0c7bf5c9c7", "sha256": "76790aebe751a40c8bb63175e204db73b7a78b3d4e0b73a96b6d02a11b2630f5" }, "downloads": -1, "filename": "multiprocessing_logging-0.3.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "08cd33e412b28f946fba4e0c7bf5c9c7", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 7940, "upload_time": "2019-06-24T10:50:34", "url": "https://files.pythonhosted.org/packages/76/30/251cdbbb71b9abe4164dfe70a1341cde21098918c50eecd882c0d32f65ad/multiprocessing_logging-0.3.0-py2.py3-none-any.whl" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "08cd33e412b28f946fba4e0c7bf5c9c7", "sha256": "76790aebe751a40c8bb63175e204db73b7a78b3d4e0b73a96b6d02a11b2630f5" }, "downloads": -1, "filename": "multiprocessing_logging-0.3.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "08cd33e412b28f946fba4e0c7bf5c9c7", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 7940, "upload_time": "2019-06-24T10:50:34", "url": "https://files.pythonhosted.org/packages/76/30/251cdbbb71b9abe4164dfe70a1341cde21098918c50eecd882c0d32f65ad/multiprocessing_logging-0.3.0-py2.py3-none-any.whl" } ] }