상세 컨텐츠

본문 제목

[nestJS] logger, verbose가 무엇인가

카테고리 없음

by esoesmio 2024. 5. 10. 18:17

본문

이 코드는 Node.js에서 TypeScript를 사용하는 NestJS 프레임워크의 일부로 보입니다. NestJS는 서버 사이드 애플리케이션을 구축하기 위한 모듈식 프레임워크로, 다양한 데코레이터와 함께 클래스 기반의 설계를 제공합니다. 주어진 코드는 로깅 기능과 HTTP GET 요청을 처리하는 부분을 보여줍니다. 아래에서 `logger`와 `verbose` 메서드에 대해 자세히 설명하겠습니다.

### Logger
`Logger`는 애플리케이션에서 발생하는 다양한 이벤트를 기록하는 도구입니다. 로깅은 소프트웨어 개발에서 중요한 부분으로, 버그 추적, 시스템 상태 모니터링, 보안 감사 등 다양한 목적으로 사용됩니다. `Logger` 클래스의 인스턴스를 생성할 때 `'Boards'`라는 문자열을 넘기는 것은, 이 로거가 `Boards` 관련 로그를 처리한다는 것을 나타냅니다.

### verbose
`verbose`는 로거가 제공하는 여러 로깅 레벨 중 하나입니다. 로깅 레벨은 로그의 중요도를 나타내며, 일반적으로 다음과 같은 레벨이 있습니다:

- **Error**: 심각한 오류가 발생했을 때 사용합니다.
- **Warn**: 경고 수준의 문제가 있을 때 사용합니다.
- **Info**: 중요한 운영 정보를 기록할 때 사용합니다.
- **Debug**: 시스템의 내부 상태를 보다 자세히 파악하고자 할 때 사용합니다.
- **Verbose**: 매우 상세한 정보를 기록할 때 사용합니다. 모든 로그 레벨 중 가장 낮은 우선순위를 가지며, 개발 과정에서 매우 상세한 정보가 필요할 때 주로 사용됩니다.

### 예시 코드
```typescript

class ApplicationService {
  private logger = new Logger(ApplicationService.name);

  someFunction() {
    this.logger.verbose("This is a verbose log message for debugging purposes.");
    this.logger.debug("Debug level log.");
    this.logger.info("Info level log.");
    this.logger.warn("Warning level log.");
    this.logger.error("Error level log.");
  }
}


```
이 예시에서 `ApplicationService` 클래스는 여러 로그 레벨을 사용하여 다양한 메시지를 기록합니다. 이렇게 로그 레벨을 구분함으로써, 개발자는 필요에 따라 로그를 필터링하고, 문제를 보다 쉽게 진단할 수 있습니다.

### 주어진 코드에서의 사용
주어진 코드에서 `this.logger.verbose(...)`는 사용자가 모든 게시판 목록을 요청할 때 이를 로그로 기록합니다. 이는 특히 개발 중이나 문제 해결 시 어떤 사용자가 데이터에 접근을 시도했는지 확인하는 데 유용할 수 있습니다. 

```typescript

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


```
여기서 `@Get()` 데코레이터는 HTTP GET 요청을 처리하고, `@GetUser()`는 요청을 보낸 사용자의 정보를 가져오는 데 사용됩니다. `getAllBoards(user)` 메소드는 해당 사용자에 따른 모든 게시판 정보를 반환합니다.

댓글 영역