# 2026-03-27: 감사 채널 (Audit Log Channel) 구현 Implementation 봇의 주요 이벤트와 시스템 상태를 관리자가 지정한 채널로 실시간 통보하는 '감사 채널' 시스템을 구축했습니다. ## 주요 구현 사항 ### 1. 데이터베이스 및 서비스 레이어 - **Prisma 모델 추가**: `AuditChannel` 모델을 추가하여 서버별 로그 채널 정보와 수신 비활성화된 카테고리를 저장합니다. - **`AuditLogService`**: - `log()`: 카테고리(`SYSTEM`, `VOICE`, `PERMISSION`, `INVITE`, `MIMIC`) 및 심각도(`INFO`, `WARN`, `ERROR`)에 따른 필터링된 Embed 알림 전송. - **격리 처리**: 감사 채널 전송 중 발생하는 권한 오류 등은 봇의 주 기능에 영향을 주지 않도록 Silent fail 처리했습니다. ### 2. 관리자 명령어 (`/audit-channel`) - `set`: 로그를 수신할 텍스트 채널을 지정하고 필수 권한(메시지 전송, 임베드 링크)을 검사합니다. - `clear`: 현재 설정된 감사 채널 정보를 초기화합니다. - `status`: 현재 등록된 채널과 수신이 차단(Muted)된 카테고리 목록을 확인합니다. - `filter`: 특정 로그 카테고리(예: `VOICE`)의 수신 여부를 개별적으로 제어합니다. ### 3. 시스템 연동 - **봇 라이프사이클**: `ready` 이벤트 발생 시 서버당 `SYSTEM` INFO 알림을 통해 시작을 알립니다. - **음성 서비스 연동**: 임시 음성 채널 생성/삭제 시 `VOICE` 로그를 남기며, 권한 부족 시 `PERMISSION` ERROR 로그를 자동으로 전송합니다. - **권한 진단 연동**: `/audit-permissions` 결과 누락 사항이 발견되면 자동으로 요약본을 감사 채널로 보고합니다. ## 결과 및 검증 - Prisma 스키마 검증 및 DB 마이그레이션(`add_audit_channel_model`) 완료. - 채널 권한 부족 시의 적절한 사용자 안내 메시지 출력 확인.