NestJS Logger · Audit map

Logger 추적 키와 감사 이벤트

requestId와 correlation id가 Nest middleware, interceptor, service, logger, audit storage까지 같은 값으로 흐르는지 한 화면에서 점검합니다.

requestId와 correlation id 전달 및 감사 이벤트 저장 흐름 요청에서 생성된 추적 키가 middleware, interceptor, service, logger, redaction, transport, error level, audit storage로 전달되는 구조. 공통 추적 키 requestId + correlation id actor userId / tenantId target entityId / route result success / deny / error retention log TTL / audit policy HTTP 요청 headers, ip, path Middleware id 생성/수신 AsyncLocalStorage Interceptor duration/status handler context Service business event actor + target Logger structured log level + context Redaction token/password 제거 Transport JSON, SIEM, APM ERROR exception filter WARN deny / retry INFO success path 감사 이벤트 스키마 audit event eventName: role.changed actor: userId / tenantId target: entityId / type result: allow / deny / error Audit Storage append-only record requestId 색인 schema version 검색 기준 requestId로 structured log, exception log, audit record, alert를 한 번에 묶는다
01

요청 수신

middleware가 requestId와 correlation id를 생성하거나 기존 값을 수신합니다.

02

맥락 전달

interceptor와 service가 actor, target, result를 같은 추적 키에 붙입니다.

03

로그 분기

logger는 redaction 후 info, warn, error 레벨과 transport를 결정합니다.

04

감사 저장

audit event는 schema 필수 필드를 확인한 뒤 append-only 저장소에 기록합니다.

context

전달 키

requestId, correlationId, actor, handler
redaction

민감값 제거

token, password, raw body, authorization header 제외
error level

실패 분리

Guard 거부는 warn, 서버 예외는 error로 구분
transport

저장 경로

구조화 로그는 transport로, 업무 행위는 audit storage로

검색 가능성

requestId 하나로 요청 로그, 예외 로그, 감사 이벤트를 찾는다.

노출 방지

민감값은 Logger transport와 audit metadata 양쪽에서 빠진다.

재구성 기준

actor, action, target, result, createdAt이 사건 시간선을 만든다.