diff --git a/lib/appenders/redis.js b/lib/appenders/redis.js index 81f8ad3..be5b382 100644 --- a/lib/appenders/redis.js +++ b/lib/appenders/redis.js @@ -4,26 +4,32 @@ const layouts = require('../layouts'); const redis = require('redis'); const util = require('util'); -function redisAppender(host = '127.0.0.1', port = 6379, pass = '', channel = 'log', layout = layouts.messagePassThroughLayout) { - const redisClient = redis.createClient(port, host, { auth_pass: pass }); +let layout; + +function redisAppender(config, layout = layouts.messagePassThroughLayout) { + const redisClient = redis.createClient(config.port, config.host, { auth_pass: config.pass }); redisClient.on('error', (err) => { if (err) { - console.error('log4js.redisAppender - %s:%p Error: %s', host, port, util.inspect(err)); + console.error('log4js.redisAppender - %s:%p Error: %s', config.host, config.port, util.inspect(err)); } }); return function (loggingEvent) { const message = layout(loggingEvent); - redisClient.publish(channel, message, (err) => { + redisClient.publish(config.channel, message, (err) => { if (err) { - console.error('log4js.redisAppender - %s:%p Error: %s', host, port, util.inspect(err)); + console.error('log4js.redisAppender - %s:%p Error: %s', config.host, config.port, util.inspect(err)); } }); }; } function configure(config) { - return redisAppender(config.host, config.port, config.pass, config.channel, layouts.layout(config.layout.type, config.layout)); + if (config.layout) { + layout = layouts.layout(config.layout.type, config.layout); + } + + return redisAppender(config, layout); } -exports.appender = redisAppender; -exports.configure = configure; +module.exports.appender = redisAppender; +module.exports.configure = configure;