Small handler and formatter for using python logging with Redis

lobziik lobziik Last update: Jun 07, 2022

rlog

Small handler and formatter for using python logging with Redis.This is cleared and simplified version of python-redis-log by Jed Parsons, with Python3 support.

Build StatusCoverage Status

Installation

The current stable release:

pip install rlog

or:

easy_install rlog

or from source:

$ sudo python setup.py install

Usage

>>> from rlog import RedisHandler>>> logger = logging.getLogger()>>> logger.addHandler(RedisHandler(channel='test'))>>> logger.warning("Spam!")>>> logger.error("Eggs!")

Redis clients subscribed to test will get a json log record by default.

RedisHandler and RedisListHandler also accepted all redis client settings as kwargs. More info about client settingsyou may find in redis-py documentation.

Custom formatters also supported, handlers accept this as formatter keyword argument. JSONFormatter from this packageused as default.

You can use the redis-cli shell that comes with redis to test this. Atthe shell prompt, type subscribe my:channel (replacing with the channelname you choose, of course). You will see subsequent log data printed in theshell.

Also you can use it with Django:

    LOGGING = {        'version': 1,        'disable_existing_loggers': True,        'handlers': {            'redis': {                'level': 'DEBUG',                'class': 'rlog.RedisHandler',                'host': 'localhost',                'password': 'redis_password',                'port': 6379,                'channel': 'my_amazing_logs'            }        },        'loggers': {            'django': {                'level': 'INFO',                'handlers': ['redis'],                'propagate': True,            },        }    }

You can also simply use it with logstash.

PRAGMA foreign_keys = off; BEGIN TRANSACTION; COMMIT TRANSACTION; PRAGMA foreign_keys = on;

Subscribe to our newsletter