winston-slack-hook

Slack WebHook transport for Winston logging library

Usage no npm install needed!

<script type="module">
  import winstonSlackHook from 'https://cdn.skypack.dev/winston-slack-hook';
</script>

README

winston-slack-hook Travis Build Status npm

Slack WebHook transport for Winston logger library

Install

$ npm install --save winston winston-slack-hook

Requirements

Usage

Basic

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

Options

Require:

  • hookUrl: Slack URL to post to
  • username: Message will be posted as this username
  • channel: The channel to post in

Optional:

  • iconEmoji: Give the username an emoji as an avatar
  • prependLevel: set to true by default, sets [level] at the beginning of the message
  • appendMeta: set to true by default, sets stringified meta at the end of the message
  • formatter(options): function for transforming the message before posting to Slack
  • colors: set to {} by default (no colors), set the color of the message given a level.

Formatter and colors

Messages can be 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;
      },
      colors: {
        warn: 'warning',
        error: 'danger',
        info: 'good',
        debug: '#bbddff'
      }
    })
  ]
});

License

MIT © Fahad Ibnay Heylaal