Socket Log Receiver
socket_log_receiver
is a light-weight socket log receiver. It runs
as a server and aggregates messages from multi-process application via
socket and logs to a single file. Python's logging
package does not
support logging to a single file from multiple processes. By pointing
SocketHandler
to socket_log_receiver
, the multi-process
application can log to a single file.
Installation
$ pip install socket-log-receiver
Basic Usage
The receiver service should be run as a service.
$ python -m socket_log_receiver # as a module
$ log_receiver # as a command-line program
In the application, use SocketHandler
to send logs to the receiver
service.
from logging.handlers import SocketHandler
handler = SocketHandler('localhost', 9020) # handler to send logs to localhost:9020
logging.root.addHandler(handler) # add the socket handler to the root logger
This way, the root logger sends logging messages to the receiver service.
Development
$ pip install -e .[dev]
$ pre-commit install
Running Tests
$ python setup.py tests