본문 바로가기
backend/NestJS

[NestJS]NestJS,MySQL 쿼리 로깅(logging)

by BK0625 2023. 4. 21.
반응형

로그는 애플리케이션에서 발생하는 많은 이벤트들에 대한 기록이다. 에러가 발생하거나 어떠한 요청이 왔을 때 해당 로그를 보고 문제를 파악한다던지 어떤 요청이 들어왔는지 파악하는 등 아주 중요한 역할을 한다.

 

그럼 NestJS는 어떻게 로그를 남길 수 있을까?

 

자바스크립트에는 console.log()가 있지만 그것보다는 다른 방법이 더 좋을 수 있다.

 

Logger Class

NestJS는 다행히도 기본적으로 로거가 내장되어 있고 손 쉽게 사용할 수 있다. @nestjs/common 패키지에서 Logger 클래스를 불러와서 인스턴스 생성 후 사용해 주기만 하면 된다.

 

 

인스턴스 생성!

 

    private readonly logger = new Logger(AlcoholController.name);
 

 

 

 

이렇게 인스턴스를 생성하면 쉽게 사용가능하다.

 

 

 

 

해당 컨트롤러는 localhost:5000/alcohol 요청이 들어왔을 시 ---------select alcohol이라는 로그를 남긴다.

 

 

 

 

이런 식으로 출력된다. 단순히 텍스트만 출력되는 console.log보다 가독성도 좋고 어느 파일에서 어느 시간대에 로그가 찍혔는지도 쉽게 알 수 있다.

 

 

 

 

이렇게 logger의 메소드들이 있어 상황에 맞게 사용하면 된다. 메소드마다 찍히는 로그의 색깔이 또 다르기 때문에 더 가독성이 좋다.

 

MySQL query log

 

 

만약 당신이 프로젝트의 데이터베이스로 MySQL을 사용하고 위 이미지처럼 쿼리로그를 보고 싶다면

 

 

 

 

MySQL 연결을 설정한 app.module.ts로 가서 해당 부분의 logging을 true로 바꿔주면 된다.

 

이렇게 손 쉽게 NestJS에서 로그를 찍는 법을 알아보았다.

 

 

 

 

공부하면서 정리한 내용이니 틀린 내용이 있다면 모든 지적 감사히 받겠습니다:)

반응형