const config = require('config'); const SLACK_WEB_HOOK = config.get('Logging.SlackWebHook'); const SLACK_ERROR_CHANNEL = config.get('Logging.SlackErrorChannel'); const SLACK_INFO_CHANNEL = config.get('Logging.SlackInfoChannel'); const winstonSlackWebHook = require('winston-slack-webhook').SlackWebHook; module.exports = (winston) => { if (SLACK_WEB_HOOK) { // add a transport for errors to slack winston.add(winstonSlackWebHook, { name : 'slack-errors-transport', level : 'error', webhookUrl: SLACK_WEB_HOOK, channel : SLACK_ERROR_CHANNEL, username : 'spee.ch', iconEmoji : ':face_with_head_bandage:', }); winston.add(winstonSlackWebHook, { name : 'slack-info-transport', level : 'info', webhookUrl: SLACK_WEB_HOOK, channel : SLACK_INFO_CHANNEL, username : 'spee.ch', iconEmoji : ':nerd_face:', }); // send test message winston.error('Slack error logging is online.'); winston.info('Slack info logging is online.'); } else { winston.error('Slack logging is not enabled because no SLACK_WEB_HOOK env var provided.'); } };