winston-airbrake

An airbrake transport for winston, inspired by the winston-graylog2 transport, powered by node-airbrake.

Usage no npm install needed!

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

README

winston-airbrake

An airbrake transport for winston. Inspired by winston-graylog2 transport and powered by node-airbrake.

Installation

Tested on node-0.8.x, requires npm.

  $ npm install winston
  $ npm install winston-airbrake

Usage

  var winston = require('winston');
  winston.add(require('winston-airbrake').Airbrake, options);

Options:

  • level: Level of messages this transport should log. (default: info)

  • silent: Boolean flag indicating whether to suppress output. (default: false)

  • apiKey: Valid Airbrake API Key (required)

  • projectId: Valid Airbrake Project ID (required)

  • env: Environment, to be displayed in Airbrake. (default: production)

Extended example of usage

  var winston = require('winston');
  var Airbrake = require('winston-airbrake').Airbrake;
  var http = require('http');

  var options = {
    "apiKey":"YOUR_API_KEY",
    "projectId":"YOUR_AIRBRAKE_PROJECT_ID",
  };
  winston.add(Airbrake, options);

  http.createServer(function(req, res) {
    if (req.url === '/' && req.headers['X-Secret'] !== 'my secret') {
      res.writeHead(403);
      res.end('403 - Permission denied');

      winston.log('info', '403 - Permission denied');

    } else if (req.url === '/breakstuff') {
      res.writeHead(500);
      res.end('500 - Internal Server Error');
    
      winston.log('error', '500 - Internal Server Error');
    }
  }).listen(24755);