NestJS · · 1 min read

10. 로깅

로깅은 앱의 동작·오류를 기록해 문제를 추적한다. NestJS는 내장 Logger 를 제공하며, 운영에서는 winston 같은 전용 로거로 교체한다.

10.1. 내장 Logger

import { Logger } from '@nestjs/common';

@Injectable()
export class UsersService {
  private readonly logger = new Logger(UsersService.name);

  findAll() {
    this.logger.log('전체 조회');
    this.logger.warn('경고 메시지');
    this.logger.error('에러 발생', stackTrace);
  }
}
  • 로그 레벨: log, error, warn, debug, verbose

10.2. 로그 레벨 설정

const app = await NestFactory.create(AppModule, {
  logger: ['error', 'warn', 'log'],   // 운영에선 debug/verbose 제외
});

10.3. winston 연동

npm install nest-winston winston
WinstonModule.forRoot({
  transports: [
    new winston.transports.Console(),
    new winston.transports.File({ filename: 'app.log' }),
  ],
});

파일 저장·외부 로그 수집(ELK 등)으로 보낼 때 유용하다.