Use Sentry error reporting

This commit is contained in:
Michael Jackson 2018-08-25 15:13:55 -07:00
parent 6d57d95b7f
commit a3d97a45c6
2 changed files with 28 additions and 19 deletions

View File

@ -1,6 +1,7 @@
const http = require("http");
const express = require("express");
const morgan = require("morgan");
const raven = require("raven");
const staticAssets = require("./middleware/staticAssets");
const createRouter = require("./createRouter");
@ -10,22 +11,35 @@ morgan.token("fwd", req => {
return fwd ? fwd.replace(/\s/g, "") : "-";
});
function errorHandler(err, req, res, next) {
console.error(err.stack);
res
.status(500)
.type("text")
.send("Internal Server Error");
next(err);
if (process.env.SENTRY_DSN) {
raven
.config(process.env.SENTRY_DSN, {
release: process.env.HEROKU_RELEASE_VERSION,
autoBreadcrumbs: true
})
.install();
}
// function errorHandler(err, req, res, next) {
// console.error(err.stack);
// res
// .status(500)
// .type("text")
// .send("Internal Server Error");
// next(err);
// }
function createServer(publicDir, statsFile) {
const app = express();
app.disable("x-powered-by");
if (process.env.SENTRY_DSN) {
app.use(raven.requestHandler());
}
if (process.env.NODE_ENV !== "test") {
app.use(
morgan(
@ -36,7 +50,7 @@ function createServer(publicDir, statsFile) {
);
}
app.use(errorHandler);
// app.use(errorHandler);
if (publicDir) {
app.use(express.static(publicDir, { maxAge: "365d" }));
@ -48,6 +62,10 @@ function createServer(publicDir, statsFile) {
app.use(createRouter());
if (process.env.SENTRY_DSN) {
app.use(raven.errorHandler());
}
const server = http.createServer(app);
// Heroku dynos automatically timeout after 30s. Set our

View File

@ -1,6 +1,5 @@
const path = require("path");
const throng = require("throng");
const raven = require("raven");
const createServer = require("./modules/createServer");
const createDevServer = require("./modules/createDevServer");
@ -8,14 +7,6 @@ const serverConfig = require("./modules/serverConfig");
require("./modules/clientRuntime");
if (process.env.SENTRY_DSN) {
raven
.config(process.env.SENTRY_DSN, {
release: process.env.HEROKU_RELEASE_VERSION
})
.install();
}
function startServer(id) {
const server =
process.env.NODE_ENV === "production"