How to send 4XX and 5XX errors to sentry?

Viewed 35

I want to capture any 4XX and 5XX errors in sentry. I found out that sentry by default does not log 4XX errors into sentry, so I've added the shouldHandleError error handler as well, but the 5XX/4XX responses are still not going to sentry.


import express, { Express } from 'express';
import * as Sentry from '@sentry/node';
import config from '../../../config/default';
import mountRoutes from './routers';

initSentry();
const app = express();
setupSentryHeaders(app);
app.use(express.json());

app.get('/',(req: any , res: any) => {
  res.sendStatus(502)
})
setSentryErrorHandler(app);

app.listen(8000, async () => {
  console.log(`service running...`);
});

function initSentry() {
  Sentry.init({
    dsn: config.sentry_dsn,
    environment: "development",
    attachStacktrace: true
  });
}

function setSentryErrorHandler(app: Express) {
  app.use(Sentry.Handlers.errorHandler({
    shouldHandleError(error) {
      const statusCode = error.statusCode
      if(statusCode > 400 ){
        return true;
      }
      return false;
    },
  }));
}
function setupSentryHeaders(app: Express) {
  app.use(Sentry.Handlers.requestHandler() as express.RequestHandler);
}
0 Answers
Related