logger.js 804 Bytes
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
const util = require('util')
const winston = require('winston')
const _ = require('lodash')

// ------------------------------------
// Bugsnag
// ------------------------------------

module.exports = {
  init (logger, conf) {
    let BugsnagLogger = winston.transports.BugsnagLogger = function (options) {
      this.name = 'bugsnagLogger'
      this.level = options.level || 'warn'
      this.bugsnag = require('bugsnag')
      this.bugsnag.register(options.key)
    }
    util.inherits(BugsnagLogger, winston.Transport)

    BugsnagLogger.prototype.log = function (level, msg, meta, callback) {
      this.bugsnag.notify(new Error(msg), _.assignIn(meta, { severity: level }))
      callback(null, true)
    }

24
    logger.add(new BugsnagLogger({
25 26
      level: 'warn',
      key: conf.key
27
    }))
28 29
  }
}