okomestudio / socket-log-receiver

Socket log receiver

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

License PyPI Version Package Status pyversion Status CircleCI Coverage Status Code style: black

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

About

Socket log receiver

License:MIT License


Languages

Language:Python 100.0%