애플리케이션을 운영할 때 에러가 날 때가 많은데 이때 어디 부분이 문제인지 빠르고 정확하게 파악하기 위해서는 어떤 곳에서 에러가 어떻게 나고 있는지 보기 위해 로그를 보는 것이 중요하다.
이번에는 로그에 대해서 알아보자.
원래는 하나의 기능을 만들때마다 로그를 붙이는 것이라고 한다.
다음부터 만들면서 로그를 넣도록 해보자.
Nest에서 logger 클래스를 사용하여 로그를 남겨보자.
import { NestFactory } from '@nestjs/core';
import { AppModule } from './app.module';
import { Logger } from '@nestjs/common';
async function bootstrap() {
const app = await NestFactory.create(AppModule);
const port = 3000;
await app.listen(port);
Logger.log(`Application running in port ${port}`);
}
bootstrap();
확인! 
@Controller('boards')
@UseGuards(AuthGuard())
export class BoardsController {
private logger = new Logger(`BoardsController`); // 모듈
constructor(private boardsService: BoardsService) {}
@Get()
getAllBoard(@GetUser() user: User): Promise<Board[]> {
this.logger.verbose(`User ${user.username} trying to get all boards`); // verbose 로그 남김
return this.boardsService.getAllBoard(user);
}
...

...
@Post()
@UsePipes(ValidationPipe)
createBoard(
@Body() createBoardDto: CreateBoardDto,
@GetUser() user: User,
): Promise<Board> {
this.logger.verbose(
`User ${user.username} creating a new board. Payload: ${JSON.stringify(
createBoardDto,
)}`,
);
return this.boardsService.createBoard(createBoardDto, user);
}
...

로거에 대해서 실무에서 많이 다뤄보지 않아서 찾아봤는데
원래는 입맛에 맞게 밑바닥부터 새롭게 구현하지만 @nestjs/common의 내장된 LoggerService를 사용하여 구현하니 정말 편한것같다.
심지어 nestjs 애플리케이션을 실행할때 터미널에 주르륵 하고 뜨는 글씨들도 로그다..!
다음에 프로젝트를 진행할때 로그를 적용하면서 따로 포스팅하는 것도 좋을것같다.