관리 메뉴

Mini

[Nest JS] 로그 구현 본문

JS/Nest.js

[Nest JS] 로그 구현

Mini_96 2024. 8. 19. 00:50

 

* 현업에서는 기능구현 -> 로그 구현 식으로 진행합니다.

 

* 시작시 로그남기기

async function bootstrap() {
  const app = await NestFactory.create(AppModule);
  const port = 3000;
  await app.listen(3000);
  Logger.log(`Application running on port ${port}`);
}
bootstrap();

 

* 컨트롤러

1. 멤버변수로 logger 생성

@Controller('boards')
@UseGuards(AuthGuard())
export class BoardsController {
  private logger = new Logger('BoardController');
  constructor(private boardsService : BoardsService) { }

  @Get()
  getAllBoard(@GetUser() user : User){
    this.logger.verbose(`User ${user.username} trying to get all boards`);
    return this.boardsService.getAllBoards(user);
  }

결과

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

* 문제 : 터미널에서는 JSON 출력이안됨!!

* 해결 : 직렬화 (string으로 만들기)

@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);
}

good