[typescript] 타입스크립트로 Nest.js 로깅 구현하기

Nest.js는 강력한 로깅 시스템을 제공하여 애플리케이션의 상태를 관리하는 데 도움을 줍니다. Nest.js 애플리케이션에서는 기본 로깅을 시작하고 커스터마이징하여 프로젝트의 요구에 맞게 설정할 수 있습니다.

이번 예시에서는 Nest.js 애플리케이션에 타입스크립트로 로깅을 구현하는 방법에 대해 알아보겠습니다.

Nest.js 프로젝트 생성하기

먼저, Nest.js 프로젝트를 생성합니다. 아래 명령어를 사용하여 Nest.js CLI를 통해 프로젝트를 생성합니다.

nest new my-nest-app

Logger 모듈 추가하기

Nest.js에서 기본 제공하는 Logger 모듈을 사용하여 로깅을 구현할 수 있습니다. Nest.js @nestjs/common 패키지에서 제공되는 Logger를 사용하여 간단히 로깅을 시작할 수 있습니다.

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

const logger = new Logger('MyLogger');

위 코드에서 ‘MyLogger’는 로거 인스턴스의 이름을 나타냅니다.

로깅 사용하기

로거를 사용하여 로깅을 구현해봅시다. 예를 들어, /users 엔드포인트로 들어오는 요청을 로그로 기록하고 싶다면 다음과 같이 작성할 수 있습니다.

import { Controller, Get } from '@nestjs/common';
import { Logger } from '@nestjs/common';

const logger = new Logger('UserController');

@Controller('users')
export class UserController {
  @Get()
  findAll() {
    logger.log('Handler for /users called!');
    return 'This action returns all users';
  }
}

위 코드에서 Loggerlog() 메서드를 사용하여 특정 동작을 로그로 남길 수 있습니다.

로거 커스터마이징하기

로거를 커스터마이징하여 로그 출력 형식을 변경하거나 특정 이벤트에 대한 로깅을 조절할 수 있습니다. Logger 클래스의 옵션을 설정하여 로깅 레벨 및 로그 메시지 형식을 변경할 수 있습니다.

const customLogger = new Logger('CustomLogger', {
  timestampFormat: 'YYYY-MM-DD HH:mm:ss',
  logLevel: 'debug',
});

위 코드에서 timestampFormatlogLevel 등의 옵션을 설정하여 로거를 커스터마이징할 수 있습니다.

Nest.js에서 타입스크립트로 로깅을 구현하는 방법에 대해 간단히 살펴보았습니다. 로그는 애플리케이션의 상태를 추적하고 디버깅하는 데 필수적이므로, Nest.js의 로깅 시스템을 이용하여 효율적으로 애플리케이션을 관리할 수 있습니다.

더 많은 정보를 원하시면 Nest.js 공식 문서를 참고하시기 바랍니다.