Security News
Oracle Drags Its Feet in the JavaScript Trademark Dispute
Oracle seeks to dismiss fraud claims in the JavaScript trademark dispute, delaying the case and avoiding questions about its right to the name.
multiprocessing-logging
Advanced tools
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 and Python 2.7 & 3.6+.
Pypy3 hangs on the tests so I don't recommend using it.
Pypy appears to be working, recently.
Only works on POSIX systems and only Linux is supported. It does not work on Windows.
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.
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.
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(...)
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.
FAQs
Logger for multiprocessing applications
We found that multiprocessing-logging demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
Oracle seeks to dismiss fraud claims in the JavaScript trademark dispute, delaying the case and avoiding questions about its right to the name.
Security News
The Linux Foundation is warning open source developers that compliance with global sanctions is mandatory, highlighting legal risks and restrictions on contributions.
Security News
Maven Central now validates Sigstore signatures, making it easier for developers to verify the provenance of Java packages.