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.0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | cfc71ec194167572bb5c6b7fe38a4e8cb350375d2ee67409a1f58cc8c708116d |
|
MD5 | 49f83f33e000a1b2584f175aa7658fd5 |
|
BLAKE2b-256 | 07089a1893e415adb5cf920e0ed460f76dd2b798d40faebd8f30d60dbdb6ca1f |