From db8174d4db0d900cd244095e63c58005cc85dd2c Mon Sep 17 00:00:00 2001 From: James Lambie Date: Tue, 11 Sep 2018 13:53:33 +0100 Subject: [PATCH] feat: add sentry error logger --- web/package.json | 1 + web/workspace/middleware/sentry-error.js | 23 +++++++++++++++++++++++ 2 files changed, 24 insertions(+) create mode 100644 web/workspace/middleware/sentry-error.js diff --git a/web/package.json b/web/package.json index a70171f..074e95b 100644 --- a/web/package.json +++ b/web/package.json @@ -24,6 +24,7 @@ "postcss-cli": "^5.0.0", "postcss-cssnext": "^3.1.0", "postcss-import": "^11.1.0", + "raven": "^2.6.4", "slugify": "^1.2.9", "striptags": "^3.1.1" } diff --git a/web/workspace/middleware/sentry-error.js b/web/workspace/middleware/sentry-error.js new file mode 100644 index 0000000..1aeb1c8 --- /dev/null +++ b/web/workspace/middleware/sentry-error.js @@ -0,0 +1,23 @@ +const config = require('@dadi/web').Config +const Raven = require('raven') + +const Middleware = function (app) { + if (config.get('global.sentry')) { + Raven.config(`${config.get('global.sentry')}?sentry_environment=${config.get('env')}`).install() + + // Add error handler + app.use((err, req, res, next) => { + Raven.captureException(err) + next(err) + }) + + // Let this error handler run before all others + app.errors.reverse() + } +} + +module.exports = function (app) { + return new Middleware(app) +} + +module.exports.Middleware = Middleware