Important: This documentation covers Yarn 1 (Classic).
For Yarn 2+ docs and migration guide, see yarnpkg.com.

Package detail

winston-office365-connector-hook

SukantGujar23MIT0.1.7

A Winston transport hook to send logs over to a Office 365 Connector, e.g. Microsoft Teams channel.

office, 365, connector, microsoft, teams, winston, log

readme

winston-office365-connector-hook Build Status npm version

A Winston transport hook to send logs over to a Office 365 Connector, e.g. Microsoft Teams channel.

Inspired by winston-slack-hook by fahad19.

Uses queue implementation by jessetane for processing transport tasks.

<image src='docs/banner.png?raw=true' alt='banner' />

Install

$ npm install --save winston winston-office365-connector-hook

Requirements

Note that Office 365 Connector Webhook URL is tied to a given channel, so you don't need to specify a channel name separately.

Usage

Basic

var winston = require('winston');
var Office365ConnectorHook = require('winston-office365-connector-hook');

var Logger = winston.Logger;
var Console = winston.transports.Console;

var logger = new Logger({
  transports: [
    new Console({}),
    new Office365ConnectorHook({
      hookUrl: 'https://outlook.office.com/webhook/XXXXXXXXXXXXX' // No need for a channel name
    })
  ]
});

logger.info('I am being logged here'); // will be sent to both console and Teams channel

Options

Require:

  • hookUrl: Connector Webhook URL to post to

Optional:

  • 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: use this to set custom colors to log levels. Note that you MUST use hex format, not names. e.g.
    "colors": {
       "debug": "4256f4",
       "error": "f00"
     }

    Behind the scenes, the level color is sent as the themeColor property of the card.

    <image src='docs/genericlog.png?raw=true' alt='generic log' /> <image src='docs/errorexample.png?raw=true' alt='error example' />

Markdown support in messages

Channel messages support Markdown syntax. Any formatting is sent as-is to the Channel.

logger.info('# Seriously!?\n > This is cool!', { title: 'You can use Markdown in messages.' });

<image src='docs/markdownexample.png?raw=true' alt='markdown example' />

Setting card title

You can set a title for the card by sending it as a part of the meta hash:

logger.info('This text appears in card body.', { title: 'My puny title' });

<image src='docs/titleexample.png?raw=true' alt='title example' />

Formatter

Messages can be formatted further before posting to the channel:

var logger = new Logger({
  transports: [
    new Office365ConnectorHook({
      hookUrl: 'https://outlook.office.com/webhook/XXXXXXXXXXXXX'

      formatter: function (options) {
        var message = options.message; // original message

        // var level = options.level;
        // var meta = options.meta;

        // do something with the message

        return message;
      }
    })
  ]
});

Roadmap

See here