Skip to content

Latest commit

 

History

History
74 lines (56 loc) · 2.11 KB

README.md

File metadata and controls

74 lines (56 loc) · 2.11 KB

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.