DOCS/book/300_architecture/reference/logging_rules.md
Claude-51124 46baeaff91 docs: 개발 참조 문서 추가 (reference/)
- API 엔드포인트 정리 (api_endpoints.md)
- 인프라 정보 정리 (infrastructure.md)
- 환경변수 정리 (environment_variables.md)
- 배포 파이프라인 정리 (deployment_pipelines.md)
- 상수/설정값 정리 (constants.md)
- 네이밍 컨벤션 정리 (naming_conventions.md)
- 로깅 규칙 정리 (logging_rules.md)

목적: 개발 시 중복/오류 방지, 빠른 참조
모든 문서 100줄 이하 유지, 파일:줄번호 참조 사용
2025-12-06 13:28:46 +09:00

2.1 KiB

로깅 규칙 참조

작성일: 2025-12-06 목적: 로그 일관성 유지, 디버깅 효율성 향상


로그 레벨 사용 규칙

레벨 사용 시점 예시
DEBUG 상세 디버깅 정보 변수 값, 함수 진입/종료
INFO 정상 동작 정보 요청 처리, 상태 변경
WARNING 예상 가능한 문제 재시도, 폴백 처리
ERROR 처리 실패 예외 발생, API 오류
CRITICAL 시스템 중단 DB 연결 실패, 서비스 다운

참고: rb8001/app/core/logger.py


로그 포맷

구조화된 로그

logger.info(f"User {user_id} authenticated", extra={
    "user_id": user_id,
    "action": "authenticate"
})

JSON 로깅

  • 형식: JSON (python-json-logger 사용)
  • 필드: time, level, module, msg

참고: rb8001/app/core/logger.py


로그 위치

컨테이너 내부

  • 경로: /code/logs/[서비스명].log
  • 예시: /code/logs/rb8001.log

호스트 (백업)

  • 경로: /mnt/51123logs/[서비스명]/
  • 백업 시간: 매일 03:00

참고: AGENTS.md:133-137


로그 확인 방법

실시간 로그

docker logs [컨테이너명] --tail 100

파일 로그

tail -f /code/logs/[서비스명].log

에러 필터링

docker logs [컨테이너명] | grep -iE "error|warn|fail"

참고: AGENTS.md:133-137


로그 보관

Docker JSON 로그

  • 위치: /var/lib/docker/containers/*/json.log
  • 권한: sudo 필요

OpenSearch

  • 주소: http://192.168.219.45:9200
  • 인덱스: dataprepper-static (서비스 로그)
  • 일별 인덱스: dataprepper-YYYY.MM.DD (fluent-bit 로그)

참고: AGENTS.md:137-142


로깅 모범 사례

DO

  • 요청/응답 로깅 (INFO)
  • 에러 상세 정보 포함 (ERROR)
  • 사용자 ID 포함 (개인정보 제외)

DON'T

  • 민감 정보 로깅 (비밀번호, 토큰)
  • 과도한 DEBUG 로그 (프로덕션)
  • 중복 로그 (같은 정보 반복)

업데이트: 로깅 규칙 변경 시 즉시 반영