se-teams-winston-transport
TypeScript icon, indicating that this package has built-in type declarations

1.1.1 • Public • Published

Solution Engineering Teams Winstons Transport

Custom Winston transport for sending alert message cards to Teams.

Usage

import TeamsWinstonTransport from 'se-teams-winston-transport';

import * as package from '../package.json';

const TEAMS_WEBHOOK_URL = process.env['TEAMS_WEBHOOK_URL'];

const teamsTransport = new TeamsWinstonTransport({
  appName: package.name,
  header: 'MyApp\'s Alerts',
  webhookUrl: TEAMS_WEBHOOK_URL,
  level: 'info',
});

logger.add(teamsTransport);

Custom formatter

Additionally you can format the log info to a message card by providing a custom formatter. e.g. you can use the additional metadata of the log object to emit to your Teams channel.

const createTeamsReportingBlocks = (info: any) => {
  if (!info.report) return [info];

  const { approvalRate, approved, rejected, amended } = info.report;

  return [
    info,
    `**Approved:** ${approved}<br>**Rejected:** ${rejected}<br>**Amended:** ${amended}`,
    `**Approval Rate:** ${approvalRate.toFixed(2)}`,
  ];
};

const teamsTransport = new TeamsWinstonTransport({
  ...,
  formatter: createTeamsReportingBlocks,
});

logger.add(teamsTransport);

logger.info('Finished transaction process!', {
  report: {
    approved: statefulTransactions.approved().length,
    rejected: statefulTransactions.rejected().length,
    amended: statefulTransactions.amended().length,
    approvalRate: approvedRate,
  },
});

Readme

Keywords

none

Package Sidebar

Install

npm i se-teams-winston-transport

Weekly Downloads

23

Version

1.1.1

License

MIT

Unpacked Size

12.6 kB

Total Files

8

Last publish

Collaborators

  • meh-greenhouse