A small toolkit for python multiprocessing file logging
Project description
Small Toolkit for Python Multiprocessing Logging
This is a small toolkit for solving unsafe python mutliprocess logging (file logging and rotation)
Install
Only for Python 3.5+
pip install mp-socket-logging
Features
(child process)
+---------------+
+<------------+ client |
+-------+-+-+ +---------------+
| | (child process)
+ Socket | +---------------+
| +<------------+ client |
+---------+-+ +---------------+
|
| (main process)
| +---------------+ +--------------+
+-------------->+ server +--------->+ log file +
+---------------+ +--------------+
- The package uses unix socket for communication between processes.
- I/O operations will all be done by server in main process.
- Client Class itself is a logging.Handler which will be added to user's logger inside child process. Client handler will do the formatting and sending the logs to server side through socket.
- Inside child process, user can do logging as normal with the logger.
Quick Start
- start a server before in the main process
server_handler = ServerHandler(LOG_FILE, maxBytes=MAX_BYTES)
server_handler.setLevel(logging.INFO)
server = Server(server_handler, batch_size=BATCH_SIZE)
server.start()
- register the client to your logger inside multiprocessing worker for sending logs to server through socket
- you can define your own formatter to add to the handler (otherwise a default formatter will be used)
client_logger = logging.getLogger("client_logger")
formatter = logging.Formatter(
"%(asctime)s - %(name)s - %(filename)s- [%(levelname)s]: %(message)s"
)
register_handler(client_logger, logging_level=logging.INFO, formatter=formatter)
client_logger.setLevel(logging.INFO)
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Close
Hashes for mp_socket_logging-0.1.1-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | fa0c8f2998e0cebcf905b97e26e15a9393c767c529ceac93e80475cae75db40f |
|
MD5 | 1287bff7cb0489529ea4d71af3f974dc |
|
BLAKE2b-256 | 9c2a8765d5654bee6686d421e8f0b1f68a90fd31446890b65117a338a3e922a7 |