wikijs-fork/server/modules/logging/bugsnag.js

33 lines
856 B
JavaScript

const util = require('util')
const winston = require('winston')
const _ = require('lodash')
// ------------------------------------
// Bugsnag
// ------------------------------------
module.exports = {
key: 'bugsnag',
title: 'Bugsnag',
props: ['key'],
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)
}
logger.add(BugsnagLogger, {
level: 'warn',
key: conf.key
})
}
}