import { Injectable, Logger } from '@nestjs/common';
@Injectable()
export class AppService {
private readonly logger = new Logger(AppService.name);
getHello(): string {
this.logger.error('level: error');
this.logger.warn('level: warn');
this.logger.log('level: log');
this.logger.verbose('level: verbose');
this.logger.debug('level: debug');
return 'Hello World!';
}
}
일반적으로 production 환경에서는 debug 로그를 찍지 않는다.
그래서 보통 다음과 같이 실행 환경에 따라 로그 레벨을 지정한다.
const app = await NestFactory.create(AppModule, {
logger: process.env.NODE_ENV === 'production'
? ['error', 'warn', 'log']
: ['error', 'warn', 'log', 'verbose', 'debug']
});
CustomLogger : @nestjs/common 패키지의 LoggerService 인터페이스를 구현하거나, ConsoleLogger 를 상속받아서 사용한다. 보통 이 방식을 채택한다.