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.
The current stable release:
pip install rlog
or:
easy_install rlog
or from source:
$ sudo python setup.py install
>>> 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.