Claude-51124 f197919684 docs: reference/ → guidelines/로 디렉토리명 변경
- 로빙을 만드는 데 지키고 싶은 개발 가이드라인이라는 의미 명확화
- '원칙'보다 더 구체적이고 실용적인 이름
2025-12-06 17:26:31 +09:00

106 lines
2.1 KiB
Markdown

# 로깅 규칙 원칙
**작성일**: 2025-12-06
**목적**: 로그 일관성 유지, 디버깅 효율성 향상
---
## 로그 레벨 사용 규칙
| 레벨 | 사용 시점 | 예시 |
|------|-----------|------|
| `DEBUG` | 상세 디버깅 정보 | 변수 값, 함수 진입/종료 |
| `INFO` | 정상 동작 정보 | 요청 처리, 상태 변경 |
| `WARNING` | 예상 가능한 문제 | 재시도, 폴백 처리 |
| `ERROR` | 처리 실패 | 예외 발생, API 오류 |
| `CRITICAL` | 시스템 중단 | DB 연결 실패, 서비스 다운 |
**참고**: `rb8001/app/core/logger.py`
---
## 로그 포맷
### 구조화된 로그
```python
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`
---
## 로그 확인 방법
### 실시간 로그
```bash
docker logs [컨테이너명] --tail 100
```
### 파일 로그
```bash
tail -f /code/logs/[서비스명].log
```
### 에러 필터링
```bash
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 로그 (프로덕션)
- 중복 로그 (같은 정보 반복)
---
**업데이트**: 로깅 규칙 변경 시 즉시 반영