driftwood-redis-logger
A driftwood logger that persists logs to redis and provides a CLI utility for searching/streaming said logs.
Installation
Logger
Augment your root drifwood logger with the redis logger, giving it an instance of redis and some options:
const createLogger = const createRedisLogger = const Redis = // Create an instance of ioredisconst redis = // Create the redis logger as an additional logger to pass to driftwoodconst additionalLoggers = // Create driftwood, passing in the additional loggersmoduleexports =
CLI
Create a file called bin/log
in your app that pulls in the logger CLI:
#!/usr/bin/env node // Function that returns a redis instance based on the environment given { return } getRedis
After making it executable (chmod +x ./bin/log
) you can then invoke it: ./bin/log --help
. For ease of use, you could add it to your npm run
scripts or to a Makefile
.
API
createRedisLogger(redis, {options})
Creates the logger. redis
should be an instance of ioredis
. options
is optional, and can contain the following keys:
key
: key to use for the list that will contain the logs, defaults todriftwood-logs
channel
: channel to publish logs on, defaults todriftwood-logs
limit
: number of logs to keep, defaults to100000
publish
: whether to publish logs, defaults totrue
. If disabled you cannot use the stream functionality in the CLI.
require('driftwood-redis-logger/cli')(getRedis(environment), options)
Runs the CLI utility. getRedis()
should be a function that receives the current environment and returns an instance of ioredis for that environment. options
is optional and can contain the following keys:
key
: key for the list that will contain the logs, defaults todriftwood-logs
channel
: channel to listen for logs on, defaults todriftwood-logs