33 lines
866 B
JavaScript
33 lines
866 B
JavaScript
const util = require('util')
|
|
const winston = require('winston')
|
|
const _ = require('lodash')
|
|
|
|
// ------------------------------------
|
|
// Rollbar
|
|
// ------------------------------------
|
|
|
|
module.exports = {
|
|
key: 'rollbar',
|
|
title: 'Rollbar',
|
|
props: ['key'],
|
|
init (logger, conf) {
|
|
let RollbarLogger = winston.transports.RollbarLogger = function (options) {
|
|
this.name = 'rollbarLogger'
|
|
this.level = options.level || 'warn'
|
|
this.rollbar = require('rollbar')
|
|
this.rollbar.init(options.key)
|
|
}
|
|
util.inherits(RollbarLogger, winston.Transport)
|
|
|
|
RollbarLogger.prototype.log = function (level, msg, meta, callback) {
|
|
this.rollbar.handleErrorWithPayloadData(new Error(msg), _.assignIn(meta, { level }))
|
|
callback(null, true)
|
|
}
|
|
|
|
logger.add(new RollbarLogger({
|
|
level: 'warn',
|
|
key: conf.key
|
|
}))
|
|
}
|
|
}
|