Slack WebHook transport for Winston logger library
$ npm install --save winston winston-slack-hook
- Use winston
- Set up Slack incoming webhook
var winston = require('winston');
var SlackHook = require('winston-slack-hook');
var Logger = winston.Logger;
var Console = winston.transports.Console;
var logger = new Logger({
transports: [
new Console({}),
new SlackHook({
hookUrl: 'https://hooks.slack.com/services/XXX/YYY/ZZZ',
username: 'bot',
channel: '#logs'
})
]
});
logger.info('I am being logged here'); // will be sent to both console and Slack
Require:
hookUrl
: Slack URL to post tousername
: Message will be posted as this usernamechannel
: The channel to post in
Optional:
iconEmoji
: Give the username an emoji as an avatarprependLevel
: set totrue
by default, sets[level]
at the beginning of the messageappendMeta
: set totrue
by default, sets stringifiedmeta
at the end of the message $formatter(options)
: function for transforming the message before posting to Slack
Messages can be formatted formatted further before posting to Slack:
var logger = new Logger({
transports: [
new SlackHook({
hookUrl: 'https://hooks.slack.com/services/XXX/YYY/ZZZ',
username: 'bot',
channel: '#logs',
formatter: function (options) {
var message = options.message; // original message
// var level = options.level;
// var meta = options.meta;
// do something with the message
return message;
}
})
]
});
MIT © Fahad Ibnay Heylaal