Sentry - NestJS: Exception filters, Interceptors

오픈소스·2023년 2월 21일
1

NestJS Boilerplate

목록 보기
7/16
post-thumbnail

여러번 참조하지만, 정말 잘 그린 그림이다.
https://velog.io/@haron/NestJS-Lifecycle-Events


nestjs-sentry npm packages가 몇개 있으나, deprecated 이거나 최신 NestJS 버젼과 engine.io 에러가 발생하여 사용하지 않고,
https://www.npmjs.com/package/@sentry/node Sentry Official SDK만으로 구현하였다.


  • error response를 정상적인 reponse로 변경하고자 할 때는, interceptor에서 error를 catch하여 사용하고,
  • error response의 내용을 수정하고자 할 때는, exception filter를 사용했다.

https://docs.nestjs.com/exception-filters
1. Exception filters를 사용하는 3가지 방법

  • app.useGlobalFilters(new KakaoExceptionFilter());
  • @UseFilters(new KakaoExceptionFilter())
  • providers: [
      {
        provide: APP_FILTER,
        useValue: new KakaoExceptionFilter(),
      },
      AppService,
    ],  
    https://docs.nestjs.com/interceptors
  1. Interceptors를 사용하는 3가지 방법
  • app.useGlobalInterceptors(new SentryInterceptor());
  • @UseInterceptors(new SentryInterceptor())
  • providers: [
      {
        provide: APP_INTERCEPTOR,
        useValue: new SentryInterceptor(),
      },
      AppService,
    ],  

구현 코드: https://github.com/youngkiu/nestjs-kakaologin/tree/8699683e2ec5eed3e51029df056a8a59bd86bf71

http://localhost:3000/error 접속

참고)

0개의 댓글