/rlog

Small handler and formatter for using python logging with Redis

Primary LanguagePython

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 Status Coverage 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 settings you may find in redis-py documentation.

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

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

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.