in backends/sentry.js [51:103]
function createStream(meta, opts) {
var backend = this;
var ravenClient = new RavenClient(backend.dsn);
var logger = new SentryLogger({
level: 'error',
enabled: true,
ravenClient: ravenClient,
tags: backend.defaultTags || {},
computeErrLoc: computeErrLoc,
onRavenError: onRavenError,
sentryProber: new Prober({
title: 'sentry',
enabled: true,
statsd: backend.statsd,
backend: ravenClient,
detectFailuresBy: Prober.detectBy.EVENT,
failureEvent: 'error',
successEvent: 'logged'
}),
sentryProberDetectFailuresBy: SentryLogger.detectBy.EVENT,
sentryProberDetectFailuresByEventFailureEvent: 'error',
sentryProberDetectFailuresByEventSuccessEvent: 'logged'
});
return LoggerStream(logger, {
highWaterMark: opts.highWaterMark
});
function onRavenError(e) {
var message = new Buffer(String(e.sendMessage || ''), 'base64');
zlib.inflate(message, function (err, buff) {
var sendMessage = String(buff || '');
if (e.statusCode === 429) {
return;
}
backend.emit('warn', 'Raven failed to upload to Sentry: ', {
message: e.message,
stack: e.stack,
reason: e.reason,
statusCode: e.statusCode,
sendMessage: sendMessage,
headers: e.response && e.response.headers
});
backend.emit('info', 'could not log to raven', {
sendMessage: sendMessage
});
});
}
};