kopia lustrzana https://github.com/c9/core
Merge pull request +12454 from c9/log-500-errors
log all internal server errors to raygunpull/263/head
commit
44d9d6c19b
|
@ -1,6 +1,7 @@
|
|||
"use strict";
|
||||
|
||||
var errors = require("http-error");
|
||||
var EventEmitter = require("events").EventEmitter;
|
||||
|
||||
plugin.consumes = [
|
||||
"connect",
|
||||
|
@ -72,10 +73,12 @@ var NICE_USER_ERROR_MSG = "Something went wrong. Please retry in a few minutes a
|
|||
|
||||
function plugin(options, imports, register) {
|
||||
var connect = imports.connect;
|
||||
|
||||
var showStackTrace = false;
|
||||
|
||||
var frontdoor = require("frontdoor");
|
||||
var statics = imports["connect.static"];
|
||||
var emitter = new EventEmitter();
|
||||
|
||||
function isDev(mode) {
|
||||
return /^(onlinedev|devel)$/.test(mode);
|
||||
|
@ -99,7 +102,6 @@ function plugin(options, imports, register) {
|
|||
return code;
|
||||
}
|
||||
|
||||
|
||||
connect.useError(function(err, req, res, next) {
|
||||
if (typeof err == "string")
|
||||
err = new errors.InternalServerError(err);
|
||||
|
@ -112,6 +114,13 @@ function plugin(options, imports, register) {
|
|||
|
||||
var accept = req.headers.accept || '';
|
||||
|
||||
if (statusCode == 500) {
|
||||
emitter.emit("internalServerError", {
|
||||
err: err,
|
||||
req: req
|
||||
});
|
||||
}
|
||||
|
||||
if (/json/.test(accept)) {
|
||||
var error = {
|
||||
code: statusCode,
|
||||
|
@ -159,6 +168,8 @@ function plugin(options, imports, register) {
|
|||
});
|
||||
|
||||
register(null, {
|
||||
"connect.error": {}
|
||||
"connect.error": {
|
||||
on: emitter.on.bind(emitter)
|
||||
}
|
||||
});
|
||||
}
|
||||
|
|
|
@ -4,7 +4,13 @@ var domain = require("domain");
|
|||
var url = require("url");
|
||||
var _ = require("lodash");
|
||||
|
||||
plugin.consumes = ["raygun", "connect", "http", "connect.remote-address", "metrics"];
|
||||
plugin.consumes = [
|
||||
"raygun",
|
||||
"connect",
|
||||
"http",
|
||||
"connect.remote-address",
|
||||
"connect.error"
|
||||
];
|
||||
plugin.provides = ["raygun.connect"];
|
||||
|
||||
module.exports = plugin;
|
||||
|
@ -14,8 +20,12 @@ function plugin(options, imports, register) {
|
|||
var errorClient = raygun.errorClient;
|
||||
var warningClient = raygun.warningClient;
|
||||
var connect = imports.connect;
|
||||
var connectError = imports["connect.error"];
|
||||
var server = imports.http.getServer();
|
||||
var metrics = imports.metrics;
|
||||
|
||||
connectError.on("internalServerError", function(msg) {
|
||||
sendRequestError(msg.err, msg.req);
|
||||
});
|
||||
|
||||
errorClient.user = warningClient.user = function(req) {
|
||||
return (req && req.user) ? req.user.name : "";
|
||||
|
|
Ładowanie…
Reference in New Issue