728x90
단순 cosole.log의 log 가 아닌, nest를 시작할 때 나오는 깔끔한 양식의 log를 만들어서 보기위해 사용
- 적용
@Injectable()
export class TasksService {
private readonly logger = new Logger(TasksService.name);
@Cron('* * * * * *')
logEverySecond() {
this.logger.log('1초마다 실행!');
}
}
[프로세스이름] 프로세스ID(매번 재실행시 바뀜) - 날짜 시간 LOG 레벨 [컨텍스트] 메시지
- Log 레벨
@Cron('*/5 * * * * *')
logEverySecond() {
this.logger.fatal('FATAL 레벨 로그');
this.logger.error('ERROR 레벨 로그');
this.logger.warn('WARN 레벨 로그');
this.logger.log('LOG 레벨 로그');
this.logger.debug('DEBUG 레벨 로그');
this.logger.verbose('VERBOSE 레벨 로그');
}
위에서 아래로 갈 수록 중요하지 않은 내용들
- FATAL : 지금 당장 해결해야할 문제, 절대 일어나면 안되는 일 로그
- ERROR : 중요한 문제가 생겼을 때 로그
- WARN : 프로그램 실행은 되지만, 일어나면 안좋은 상황 로그
- LOG : 정보성 로그
- DEBUG : 프로덕션이 아닌 개발환경에서 중요한 로그
- VERBOSE : 궁금해서 로깅해본 내용(쓸모없는 내용)
- 표시되는 Log 설정
async function bootstrap() {
const app = await NestFactory.create(AppModule, {
logger: false,
});
await app.listen(3000);
}
bootstrap();
false : 로그 안보이기
const app = await NestFactory.create(AppModule, {
logger: ['debug'],
});
debug 위의 레벨 Log 전부 보이기
- Custom Logger
// default.logger.ts
@Injectable()
export class DefaultLogger extends ConsoleLogger {
warn(message: unknown, ...rest: unknown[]): void {
console.log('---- WARN LOG ----');
super.warn(message, ...rest);
}
error(message: unknown, ...rest: unknown[]): void {
console.log('---- ERROR LOG ----');
super.warn(message, ...rest);
}
}
cosole.log 자리에 원하는 기능 추가하기. ex) log 내용을 DB에 저장하거나 다른 서버에 보내거나
// common.module.ts
providers: [
DefaultLogger,
],
exports: [DefaultLogger],
의존성 주입 providers, 다른데서 쓰려면 exports
constructor(
private readonly logger: DefaultLogger,
) {}
의존성 주입 받았기 때문에 constructor로 정의
log에 위에 작성한 내용 실행된걸 볼 수 있음.
- Winston
yarn add winston nest-winston
yarn add -D @types/winston
많이 사용하는 Logging 툴이라고 함.
log 파일로 저장하는 방법등 알려줌. 쓰게 되면 한번 보자.
https://fastcampus.co.kr/classroom/239666
커리어 성장을 위한 최고의 실무교육 아카데미 | 패스트캠퍼스
성인 교육 서비스 기업, 패스트캠퍼스는 개인과 조직의 실질적인 '업(業)'의 성장을 돕고자 모든 종류의 교육 콘텐츠 서비스를 제공하는 대한민국 No. 1 교육 서비스 회사입니다.
fastcampus.co.kr
728x90
'코딩 > Nest.js' 카테고리의 다른 글
Swagger 2 (0) | 2024.10.27 |
---|---|
Versioning (0) | 2024.10.27 |
Task Scheduling (1) | 2024.10.26 |
Caching (2) | 2024.10.25 |
Multer (0) | 2024.10.25 |