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

Downloads in past


0.1.77 years ago7 years agoMinified + gzip package size for winston-office365-connector-hook in KB


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.


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


  • Get a Webhook URL by setting up an Incoming Connector for the Teams channel you wish to send the logs to.
Note that Office 365 Connector Webhook URL is tied to a given channel, so you don't need to specify a channel name separately.



```js 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: '' // No need for a channel name
});'I am being logged here'); // will be sent to both console and Teams channel ```


  • hookUrl: Connector Webhook URL to post to
  • 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.

Markdown support in messages

Channel messages support Markdown syntax. Any formatting is sent as-is to the Channel.'# Seriously!?\n > This is cool!', { title: 'You can use Markdown in messages.' });

Setting card title

You can set a title for the card by sending it as a part of the meta hash:'This text appears in card body.', { title: 'My puny title' });


Messages can be formatted further before posting to the channel: ```js var logger = new Logger({ transports:
new Office365ConnectorHook({
hookUrl: ''
formatter: function (options) {
var message = options.message; // original message
// var level = options.level;
// var meta = options.meta;
// do something with the message
return message;
}); ```


See here