Kord/Docs/WorkDone/2026-03-27_Audit_Log_Channe...

1.9 KiB

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) 완료.
  • 채널 권한 부족 시의 적절한 사용자 안내 메시지 출력 확인.