logo

[NestJS] winston을 사용해서 logger middleware, filter로 로깅하기. 로그 관심사 분리

language-logoNestJS
language-logoGithub
language-logoNodeJS

• NestJS에서 로깅을 구현하는 방법 중 가장 대중적인 패키지인 Winston을 선택한 이유는 많은 다운로드를 기록하고 있고, 타입스크립트를 지원하여 많은 레퍼런스를 기대할 수 있기 때문이다.
• 로거를 불러오는 방법은 NestApplicationContext 내의 옵션 중 로거를 대체하는 방법과 LoggerModule을 추가한 뒤 필요한 부분에 Inject해서 사용하는 방법이 있으며, 본인은 Bootstrapping 단계부터 로깅되기를 원했기에 전자를 선택했다.
• NestJS의 장점 중 하나는 LifeCycle을 활용하여 관심사를 분리할 수 있다는 점이며, 이를 통해 사용자 요청과 오류 발생 시 로깅을 할 수 있다. 이를 위해 logger.middleware와 exception.filter를 사용한다.
• NestJS 내장 Logger를 대체하기 위해 winstonLogger를 사용하고, 이를 설정하는 logger.config 파일을 생성한다. 이 파일에서는 로그의 저장 위치, 파일명, 압축 여부 등을 설정할 수 있다.

thumbnail
북마크
공유하기
신고하기
7분 분량
조회수 624
profile-imagewq0212
일 년 전
Copyright © 2025. Codenary All Rights Reserved.