Skip to main content
LogTape는 카테고리 시스템으로 로그를 구조화합니다. Sonamu는 Model, Frame, Workflow, Agent 클래스에 대해 자동으로 카테고리를 생성합니다.

카테고리란?

카테고리는 로그의 출처를 계층 구조로 표현합니다. 형식: ["a", "b", "c"] 배열 예시:
  • ["fastify"] - Fastify 프레임워크
  • ["sonamu", "model", "user-model"] - UserModel 클래스
  • ["sonamu", "workflow", "email-send"] - EmailSendWorkflow
  • ["app", "payment", "processor"] - 커스텀 카테고리

카테고리 시스템의 목적

카테고리는 로그를 체계적으로 관리하기 위해 필요합니다. 1. 로그 출처 식별
2. 선택적 로깅
3. 로그 분리 저장

계층 구조의 이점

카테고리가 계층적인 이유: 1. 명확한 구조
어디서 발생한 로그인지 한눈에 파악 가능 2. 유연한 필터링
3. 충돌 방지

왜 정확한 매칭만 되나?

LogTape는 카테곣리를 정확히 일치하는 것만 매칭합니다.
이유:
  1. 명확성
  1. 성능
  1. 예측 가능성

카테고리 구조 상세

계층 표현

카테고리는 점점 구체적으로 좁혀집니다.
설정 예시:

카테고리 매칭

LogTape는 카테고리를 정확히 일치하는 것만 매칭합니다.

자동 카테고리 생성

Sonamu는 특정 클래스에 대해 자동으로 카테고리를 생성합니다.

Model 클래스

변환 규칙:
  1. 클래스 이름에서 ModelClass 제거
  2. PascalCase → snake_case 변환
  3. snake_case → kebab-case 변환
예시:

Frame 클래스

변환 규칙: Model과 동일하되 FrameClass 제거

Workflow

변환 규칙:
  1. 클래스 이름에서 Workflow 제거 (접미사만)
  2. PascalCase → snake_case 변환
  3. snake_case → kebab-case 변환
예시:

Agent 클래스

변환 규칙: Model과 동일하되 AgentClass 제거

Naite 카테고리

Naite 테스트 키는 특별한 카테고리 변환 규칙을 따릅니다.
변환 규칙:
  1. .로 split
  2. 각 부분을 :로 split
  3. 평탄화 (flatten)
예시:

카테고리별 로깅 설정

Model별 로그 분리

타입별 로그 레벨 조정

네임스페이스별 관리

커스텀 카테고리

애플리케이션 코드에서 커스텀 카테고리를 사용할 수 있습니다.
설정:

실전 예시

개발 환경 상세 로깅

프로덕션 선택적 로깅

도메인별 로그 분리

내부 동작 원리

이 섹션은 Sonamu의 카테고리 시스템이 내부적으로 어떻게 동작하는지 설명합니다. 여기 나오는 함수들은 Sonamu가 자동으로 사용하며, 사용자가 직접 호출할 수 없습니다.

isSameCategory()

두 카테고리가 정확히 일치하는지 확인하는 내부 함수입니다.
내부 용도: LogTape의 logger 설정에서 카테고리를 매칭할 때 사용됩니다.

convertDomainToCategory()

클래스 이름을 카테고리로 변환하는 내부 함수입니다.
내부 용도: Model, Frame, Workflow, Agent 클래스가 생성될 때 자동으로 카테고리를 할당합니다. 변환 로직:
  1. 클래스 이름에서 접미사 제거 (ModelClass, FrameClass, AgentClass, Workflow)
  2. PascalCase → snake_case 변환
  3. snake*case → kebab-case 변환 (*-)
  4. ["sonamu", type, name] 형식으로 구성

convertNaiteKeyToCategory()

Naite 테스트 키를 카테고리로 변환하는 내부 함수입니다.
내부 용도: Naite 테스트 실행 시 로그 카테고리를 자동으로 생성합니다. 변환 로직:
  1. .로 split
  2. 각 부분을 :로 split
  3. 평탄화 (flatten)

주의사항

1. 정확한 매칭만 지원

2. 카테고리는 readonly 배열

3. 클래스 이름 컨벤션

4. Fastify 카테고리 중복

다음 단계

Fastify 로깅

HTTP 요청/응답 로깅을 커스터마이징하세요

Sinks & Filters

커스텀 Sink와 Filter로 로그 출력을 제어하세요

LogTape 설정

기본 로깅 설정과 개념을 학습하세요

LogTape 공식 문서

LogTape의 고급 기능과 API를 확인하세요