winston-office365-connector-hook
v0.1.7
Published
A Winston transport hook to send logs over to a Office 365 Connector, e.g. Microsoft Teams channel.
Downloads
24
Maintainers
Readme
winston-office365-connector-hook
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.
Install
$ npm install --save winston winston-office365-connector-hook
Requirements
- Use winston
- 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.
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 totrue
by default, sets[level]
at the beginning of the messageappendMeta
: set totrue
by default, sets stringifiedmeta
at the end of the messageformatter(options)
: function for transforming the message before posting to Slackcolors
: 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.
logger.info('# 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:
logger.info('This text appears in card body.', { title: 'My puny title' });
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