.env
등에 넣어준다.
1) I'll create my own alerts later - 일단 alert를 설정하지 않는다.
2) Alert me on every new issue - 새로운 issue가 나올때마다 알림을 주는 alert를 프로젝트 생성 시 만든다.
3) When there are more than ... - n분 동안 unique 한 error가 m번보다 더 생기면 알림을 주겠다
프로젝트를 생성하면 Installaion Setting 가이드 페이지가 나오는데 예시 코드 내에서 해당 프로젝트의 DSN을 가져올 수 있다.
npm i --save @sentry/node
const Sentry = require("@sentry/node");
// init과 requestHandler는 다른 모듈, 미들웨어 코드의 상단에 있어야 함.
Sentry.init({
dsn: process.env.DSN, // 자신의 dsn을 가져옵니다.
tracesSampleRate: 1.0,
});
app.use(Sentry.Handlers.requestHandler());
// 기타 모듈, 미들웨어들 코드
// Sentry error handler는 다른 error handler 미들웨어보다 앞에 있어야 함.
app.use(Sentry.Handlers.errorHandler());
// 기타 에러 핸들링 미들웨어 코드
Sentry.Handlers.errorHandler()
안에서 에러 핸들링을 커스터마이징할 수 있다.
Sentry.Handlers.errorHandler({
shouldHandleError(error) {
if (
error.errorCode === 403 ||
error.errorCode === 404 ||
error.errorCode === 500
) {
return true;
}
return false;
}
해당 코드는 403, 404, 500 에러에 대해서만 에러 이벤트를 발생시켜주어 Sentry project에 반영한다. shouldHandleError()
안에서 true
를 반환하는 조건일 때 이벤트가 성립한다.
자세한 옵션 설정은 공식 문서에서 확인할 수 있다.
다음과 같이 이슈 이벤트들이 쌓인다.
에러 로그들을 팀원들과 공유할 수 있다!