기본 패턴
python
import logging
logging.basicConfig(level=logging.INFO)
logger = logging.getLogger(__name__)
logger.info("start processing")
logger.warning("retrying request")설명
print는 빠른 확인에는 편하지만, 실행 단계가 길어지거나 운영 환경으로 가면 금방 한계가 드러납니다. 로그 레벨, 출력 형식, 파일 저장, 필터링 같은 제어가 어렵기 때문입니다.logging모듈은 메시지를 단순 문자열이 아니라 "수준과 맥락을 가진 이벤트"로 다루게 해 줍니다. 그래서 개발 중 디버깅과 운영 중 관측을 하나의 체계로 연결할 수 있습니다.DEBUG,INFO,WARNING,ERROR같은 레벨은 단지 장식이 아니라, 어떤 상황을 얼마나 심각하게 볼지에 대한 합의입니다. 로그를 읽기 쉽게 만드는 첫 번째 기준이기도 합니다.logger = logging.getLogger(__name__)패턴은 모듈별로 로그 출처를 분리하는 기본 방법입니다. 프로젝트가 커질수록 이 출처 정보가 중요해집니다.- Python에서 logging을 익히면 예외 처리, 재시도, 배치 작업, 웹 서비스 관측까지 자연스럽게 이어집니다. 즉 문법보다 운영 감각에 더 가까운 주제입니다.
빠른 정리
| 요소 | 역할 |
|---|---|
basicConfig | 기본 로그 설정 |
getLogger(__name__) | 모듈별 logger 생성 |
| 로그 레벨 | 중요도 구분 |
| 장점 | 필터링, 포맷, 저장, 운영 관측 |
주의할 점
로그를 너무 많이 찍으면 중요한 신호가 묻히고, 너무 적게 찍으면 문제를 재구성하기 어렵습니다. "나중에 이 문제를 추적할 때 필요한 정보인가"를 기준으로 로그를 설계하는 편이 좋습니다.
참고 링크
2 sources