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
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file mp-socket-logging-0.1.1.tar.gz.
File metadata
- Download URL: mp-socket-logging-0.1.1.tar.gz
- Upload date:
- Size: 6.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.5.0 importlib_metadata/4.8.2 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.8
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a2e8b742ba6afcd5e0a04eea2bbfe76d4556d3363022045bfce951ca2cd83ffb
|
|
| MD5 |
973fc4788ccddd13cef1f74f37024c7d
|
|
| BLAKE2b-256 |
8802024df318d7d89bb6ac4fbeb2e0c849d5cd3f78e9801dec80ce3ff2a69cc7
|
File details
Details for the file mp_socket_logging-0.1.1-py3-none-any.whl.
File metadata
- Download URL: mp_socket_logging-0.1.1-py3-none-any.whl
- Upload date:
- Size: 7.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.5.0 importlib_metadata/4.8.2 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.8
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
fa0c8f2998e0cebcf905b97e26e15a9393c767c529ceac93e80475cae75db40f
|
|
| MD5 |
1287bff7cb0489529ea4d71af3f974dc
|
|
| BLAKE2b-256 |
9c2a8765d5654bee6686d421e8f0b1f68a90fd31446890b65117a338a3e922a7
|