전에 글에서 미들웨어에 대해 알아보았다. 미들웨어를 사용하여서 개발에서 중요한 로깅에 대해 알아보자.
내장 로깅 옵션을 통해 로깅 시스템의 동작을 제어 할 수 있다.
- 로깅을 완전히 비활성화
- 로그 레벨 지정 - log, error, warn, debug, verbose
- 기본 로거의 타임스탬프 재정의(예: ISO8601 표준을 날짜 형식으로 사용)
- 기본 로거를 완전히 재정의
- 그것을 확장하여 기본 로거를 사용자 정의
- 종속성 주입을 사용하여 애플리케이션 구성 및 테스트 단순화
Nest에서 제공하는 LoggerService 인터페이스를 구현하는 클래스를 통해 사용자 지정 로거를 구현할 수 있다.
import { LoggerService } from '@nestjs/common';
export class MyLogger implements LoggerService {
log(message: any, ...optionalParams: any[]) {}
error(message: any, ...optionalParams: any[]) {}
warn(message: any, ...optionalParams: any[]) {}
debug?(message: any, ...optionalParams: any[]) {}
verbose?(message: any, ...optionalParams: any[]) {}
}
// main.ts
const app = await NestFactory.create(AppModule, {
logger: new MyLogger(),
});
await app.listen(3000);