Home / AI / AI 용어사전 / 로깅(Logging) — AI 시스템 오류를 추적·기록하는 개발자의 눈
TERM
로깅(Logging) — AI 시스템 오류를 추적·기록하는 개발자의 눈
On this page
로그(Log)는 시스템이 실행되는 과정에서 발생하는 이벤트, 오류, 상태 변화를 시간 순으로 기록한 데이터다. 로깅(Logging)은 이 로그를 생성하고 저장하는 행위 전체를 가리킨다. AI 시스템이 복잡해질수록 로깅은 '있으면 좋은 것'이 아닌 운영의 필수 기반이 된다.
정의
로깅(Logging)은 소프트웨어 실행 중 발생하는 이벤트를 시간·내용·심각도(level)와 함께 기록하는 작업이다. 영문 원어 'Log'는 항해 일지에서 유래했으며, 현대 개발에서는 애플리케이션의 행동 기록을 의미한다. 장애가 발생했을 때 "무슨 일이, 언제, 왜 일어났는가"를 추적하는 가장 기본적인 수단이다.
로그 레벨 — DEBUG부터 CRITICAL까지
로깅 라이브러리는 심각도에 따라 로그를 분류한다. Python 표준 라이브러리 logging 기준으로 5단계가 있다.
| 레벨 | 용도 | |---|---| | DEBUG | 개발 중 세부 변수 추적 | | INFO | 정상 작동 흐름 기록 | | WARNING | 오류는 아니지만 주의가 필요한 상황 | | ERROR | 기능 일부 실패, 복구 가능 | | CRITICAL | 시스템 전체가 멈출 수 있는 심각한 오류 |
운영 환경에서는 보통 INFO 이상만 출력하고, 개발 환경에서는 DEBUG까지 출력한다. 레벨을 잘못 설정하면 운영 로그에 디버그 노이즈가 넘쳐나거나, 반대로 중요한 경고를 놓치게 된다.
import logging
logging.basicConfig(
level=logging.INFO,
format='%(asctime)s %(levelname)s %(message)s'
)
def run_ai_inference(input_text):
logging.info(f"추론 시작: input_length={len(input_text)}")
try:
result = model.predict(input_text)
logging.info(f"추론 완료: result_length={len(result)}")
return result
except Exception as e:
logging.error(f"추론 실패: {e}")
raiseAI 파이프라인에서의 로깅 활용
AI 시스템은 데이터 수집 → 전처리 → 모델 추론 → 후처리 → 발행의 파이프라인으로 구성된다. 각 단계에서 로그를 남기면 어느 단계에서 오류가 발생했는지 즉시 추적할 수 있다.
- 데이터 수집: 외부 API 응답 코드, 수집된 레코드 수
- 전처리: 필터링된 항목 수, 유효하지 않은 형식 건수
- 모델 추론: 입력 토큰 수, 응답 시간, 오류 코드
- 발행: 성공/실패 여부, 발행된 URL
구조화 로그(Structured Logging)를 사용하면 JSON 형식으로 기록해 Datadog, CloudWatch 같은 로그 집계 도구에서 필터링과 알림 설정이 쉬워진다.
import json, logging
def structured_log(level, event, **kwargs):
record = {"event": event, **kwargs}
logging.log(level, json.dumps(record, ensure_ascii=False))
structured_log(logging.INFO, "notion_publish_success", page_id="abc123", title="로깅 가이드")
# {"event": "notion_publish_success", "page_id": "abc123", "title": "로깅 가이드"}로깅과 모니터링의 차이
로깅은 과거 사건을 기록하는 행위고, 모니터링(monitoring)은 현재 시스템 상태를 실시간으로 추적하는 행위다. 로그는 모니터링의 원천 데이터가 된다. 장애 발생 후 원인을 분석하려면 로그가 필요하고, 장애를 사전에 감지하려면 모니터링이 필요하다. 두 개념은 보완 관계로, 실전 운영에서는 함께 사용한다.
관련 용어
- debugging — 오류 원인을 찾아 수정하는 과정
- monitoring — 실시간 시스템 상태 추적
- exception — 실행 중 발생하는 예외 상황
- pipeline — 여러 처리 단계를 연결한 자동화 흐름
- structured-logging — JSON 등 파싱 가능한 형식으로 로그를 기록하는 방식