From 2faf997cfa4fe0ce631bcfd080dfa47aa4730a86 Mon Sep 17 00:00:00 2001 From: Remy Sharp Date: Fri, 27 Jul 2012 14:00:19 +0100 Subject: [PATCH] Upgrade error reporting to include headers and hash the subject --- lib/handlers/error.js | 8 +++++++- lib/handlers/mail.js | 13 ++++++++----- views/error_email.txt | 8 +++++++- 3 files changed, 22 insertions(+), 7 deletions(-) diff --git a/lib/handlers/error.js b/lib/handlers/error.js index 2700cff9..fa7a4e9a 100644 --- a/lib/handlers/error.js +++ b/lib/handlers/error.js @@ -93,13 +93,19 @@ module.exports = Observable.extend({ delete session.user.email; } + var headers = utils.extend({}, req.headers); + delete headers.cookie; + context = { name: err.name, message: err.message, stack: err.stack, body: JSON.stringify(req.body, null, 2), session: JSON.stringify(session, null, 2) || null, - url: this.helpers.url(req.url, true) + url: this.helpers.url(req.url, true), + path: req.url, + headers: JSON.stringify(headers) || null, + method: req.method }; if (context.body === '{}') { diff --git a/lib/handlers/mail.js b/lib/handlers/mail.js index 597df47d..09e66276 100644 --- a/lib/handlers/mail.js +++ b/lib/handlers/mail.js @@ -1,5 +1,6 @@ var Observable = require('../utils').Observable, - errors = require('../errors'); + errors = require('../errors'), + crypto = require('crypto'); module.exports = Observable.extend({ constructor: function MailHandler(transport, render) { @@ -18,9 +19,9 @@ module.exports = Observable.extend({ } _this.sendMail({ - from: "JSBin ", + from: "Dave ", to: to, - subject: 'JSBin Password Reset', + subject: 'JS Bin Password Reset', text: body }, fn); }); @@ -33,10 +34,12 @@ module.exports = Observable.extend({ return fn(err); } + var hash = crypto.createHash('md5').update(body).digest('hex').slice(0, 6); + _this.sendMail({ - from: "JSBin ", + from: "Dave ", to: to, - subject: 'JSBin Internal Server Error', + subject: 'JS Bin Crash Report: ' + context.message + ' ' + hash, text: body }, fn); }); diff --git a/views/error_email.txt b/views/error_email.txt index 49b3f930..635feba3 100644 --- a/views/error_email.txt +++ b/views/error_email.txt @@ -4,17 +4,23 @@ So JSBin blew up accessing: {{url}} {{stack}} +{{method}} {{path}} +{{headers}} + {{#body}} POST Body: {{{body}}} {{/body}} + {{#session}} Session: {{{session}}} {{/session}} + Cheers, -Dave + +Dave \ No newline at end of file