작성
·
46
0
안녕하세요. 몇가지 질문이 있습니다.
저는 NestJS에서 지원하는 @nest/common
패키지의 Logger
를 사용해왔는데요. MTTD
를 최소화 하기 위해서 다른 사람들은 로깅을 어떻게 하는지 찾아보다 winston
과 pino
라이브러리를 발견했습니다. 이런 라이브러리들과 NestJS
에 내장되어 있는 Logger
와는 어떤 차이가 있나요? 커스텀 하는 기능 외에 성능적으로 우위가 있는건가요?
현업에서는 보통 로그를 어떻게 남기나요? 제로초님은 현업에서 로그 모니터링 도구로 Data Dog
과 Sentry
를 사용하신다고 하셨는데 저는 와탭랩스를 사용해보려고 합니다. 이 때, 로그는 보통 어떤 형식으로 남기시나요?
제가 계획하고 있는 구조는 미들웨어에서 아래처럼 남겨주고, 에러가 발생하면 ExceptionFilter
에서 한번 더 위의 형식에 에러 메시지를 포함해서 로그를 남겨주려고 합니다.
LOG [HTTP] [DateTime] [method] [statusCode] [responseTime] - [url] - [ip] - [userAgent]
제로초님의 로그 구성이 궁금합니다.
감사합니다.
답변 1
0
저는 로그 형식은 문자열 한줄을 기본으로 하되 한 줄로 표현하기 힘들면 json을 사용하고요. 로그 형식보다는 로그를 자주 남기는게 더 도움이됐습니다.
winston을 사용하는데 콘솔+모니터링 툴로 보낼 로그는 this.logger.log를 쓰고 개발 시에만 쓸 로그는 console.log 그냥 사용합니다. winston이 상황별로 설정이 돼서 좋습니다. 저는 배포시에는 this.logger.log글을 파일로 저장 및 콘솔 출력하고 있고, 개발 시에는 this.logger.log를 콘솔로만 출력하고 있습니다.
저도 에러는 익셉션 필터에서 500번대 에러만 this.logger.error로 로깅하고 있습니다