로그 레벨
1. FATAL (치명적 오류)
애플리케이션이 더 이상 실행될 수 없는 심각한 오류
- 시스템이 즉시 종료될 정도로 중요한 문제
- 반드시 즉각적인 조치가 필요
예시
- 중요한 설정 정보가 누락됨
- 데이터베이스 연결이 끊어져 필수 기능 수행 불가
- 디스크 공간 부족으로 시스템 중단
- 해킹 시도 감지
2. ERROR (오류)
특정 기능이 작동하지 않지만, 전체 시스템은 계속 실행 가능
- 긴급 대응 필요하지만, 시스템 전체가 멈추는 것은 아님
- 일부 기능이 비정상적이거나 실패했을 때 기록됨
예시
- API 요청이 실패하여 서비스에 영향
- 네트워크 연결 실패 (자동 복구가 안 되는 경우)
- JSON 데이터를 읽는 중 오류 발생
3. WARN (경고)
예상치 못한 상황이지만, 시스템이 정상적으로 동작함
- 즉각적인 오류는 아니지만, 조치가 필요할 가능성이 높음
- 시스템이 정상적으로 동작하더라도 미래에 문제로 발전할 수 있음
예시
- CPU, 메모리 사용량이 위험 수준 근접
- 로그인 실패 횟수가 비정상적으로 많음 (보안 위험)
- 오래된 설정값 사용 중
4. INFO (정보)
시스템의 정상적인 동작을 기록하는 로그
- 문제 해결보다는 시스템의 중요한 상태 변화 기록
- 일반적으로 프로덕션 환경에서 기본적으로 활성화됨
예시
- 서비스 시작 및 종료 기록
- 작업이 정상적으로 완료됨 (예: 파일 업로드 성공)
- 주기적인 상태 점검 결과
5. DEBUG (디버그)
개발자가 문제 해결을 위해 사용하는 상세한 로그
- 개발 및 테스트 환경에서만 사용
- 많은 양의 데이터를 기록하기 때문에 운영 환경에서는 비활성화하는 것이 일반적
예시
- 데이터베이스 쿼리 내용 확인
- API 요청 및 응답 정보
- 설정값 및 실행 시간 기록
6. TRACE (추적)
코드 실행 경로를 상세하게 추적하는 로그
- 디버깅보다 더 세밀한 로그로 코드가 어떻게 실행되는지 확인
- 보통 성능 분석이나 복잡한 문제 해결 시 사용
- 운영 환경에서는 사용하지 않음 (너무 많은 데이터 생성)
예시
- 함수가 호출될 때 입력값 및 반환값 기록
- 반복문 내에서 처리되는 데이터 추적
- 알고리즘의 동작 과정 확인
정리
로그 레벨 | 설명 | 예시 |
---|---|---|
FATAL | 시스템이 멈춰야 할 정도로 치명적인 문제 발생 | 데이터베이스가 완전히 다운됨 |
ERROR | 기능이 실패했지만 시스템은 계속 작동 가능 | 외부 API 호출 실패, 네트워크 오류 |
WARN | 이상 징후가 있지만 큰 문제는 아님 | CPU 사용량 급증, 보안 위협 가능성 |
INFO | 시스템의 정상적인 상태 변화 기록 | 서비스 시작/종료, 작업 완료 메시지 |
DEBUG | 개발자가 문제 해결을 위해 추가적인 정보를 보고 싶을 때 | API 요청/응답 상세 내용, SQL 쿼리 실행 결과 |
TRACE | 코드 실행 과정을 매우 상세히 추적할 때 | 함수 호출 과정, 알고리즘 수행 과정 |
운영 환경(production): INFO, WARN, ERROR, FATAL
개발 환경(development): DEBUG, TRACE 포함 모든 로그
'etc' 카테고리의 다른 글
Microservice Architecture on Robotics (2) | 2025.02.04 |
---|---|
How to register member functions of other classes as callback functions in ROS2 (0) | 2025.01.22 |
colcon graph (0) | 2025.01.16 |
Python Package Offline Install (0) | 2024.01.18 |
Fix client coordinates and set camera projection in Gazebo (0) | 2023.11.20 |