function createStream()

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
                });
            });
        }
    };