driftwood-redis-logger
v1.0.1
Published
A driftwood logger that persists to redis
Downloads
3
Readme
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 = require('driftwood')
const createRedisLogger = require('driftwood-redis-logger')
const Redis = require('ioredis')
// Create an instance of ioredis
const redis = Redis()
// Create the redis logger as an additional logger to pass to driftwood
const additionalLoggers = [createRedisLogger(redis)]
// Create driftwood, passing in the additional loggers
module.exports = createLogger('my-app', additionalLoggers)
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
function getRedis (environment) {
return new Redis()
}
require('driftwood-redis-logger/cli')(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