multiprocessing-logging
When using the multiprocessing module, logging becomes less useful since
sub-processes should log to individual files/streams or there's the risk of
records becoming garbled.
This simple module implements a Handler that when set on the root
Logger will handle tunneling the records to the main process so that
they are handled correctly.
It's currently tested in Linux on CPython 2.7, CPython 3.9+, and PyPy 2.7 and 3.
Only works on POSIX systems and only Linux is supported. It does not work on Windows.
Origin
This library was taken verbatim from a StackOverflow post and extracted into a module so that I wouldn't have to copy the code in every project.
Later, several improvements have been contributed.
Usage
Before you start logging but after you configure the logging framework (maybe with logging.basicConfig(...)), do the following:
import multiprocessing_logging
multiprocessing_logging.install_mp_handler()
and that's it.
With multiprocessing.Pool
When using a Pool, make sure install_mp_handler is called before the Pool is instantiated, for example:
import logging
from multiprocessing import Pool
from multiprocessing_logging import install_mp_handler
logging.basicConfig(...)
install_mp_handler()
pool = Pool(...)
Problems
The approach of this module relies on fork being used to create new processes. This start method is basically unsafe when also using threads, as this module does.
The consequence is that there's a low probability of the application hanging when creating new processes.
As a palliative, don't continuously create new processes. Instead, create a Pool once and reuse it.
Metadata
Release files for multiprocessing-logging 0.4.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| multiprocessing_logging-0.4.0.tar.gz | 9.4 kB | Without provenance | Details for multiprocessing_logging-0.4.0.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| multiprocessing_logging-0.4.0-py3-none-any.whl | Python 3 | none | any | Details for multiprocessing_logging-0.4.0-py3-none-any.whl |
Total release size: 16.6 kB
Release files / multiprocessing_logging-0.4.0.tar.gz
| Download URL | multiprocessing_logging-0.4.0.tar.gz |
|---|---|
| Size | 9.4 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
152d209f4d1fd7fed500e695c92848bd72016f3a54b98a80283d64abcc27e0bc
|
|
BLAKE2b-256 checksum How to use checksums |
e49d5751e234a12525994a8b41a962b4ab974f4ac074eb7d5367ba94440b2d57
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.14.7
|
Release files / multiprocessing_logging-0.4.0-py3-none-any.whl
| Download URL | multiprocessing_logging-0.4.0-py3-none-any.whl |
|---|---|
| Size | 7.2 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
0d76dae0f187343d9009aec4cada11e7323ba8189869e11797ddeab3c90dc687
|
|
BLAKE2b-256 checksum How to use checksums |
99a11affd609ca8e22383f56ba1e4289e47bc2f11af0a0ae4f2b944aac4a6616
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.14.7
|
Security for multiprocessing-logging 0.4.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.