getLogger는 Python 표준 라이브러리 logging 모듈의 함수입니다. 이름을 기반으로 로거(Logger) 인스턴스를 가져오거나 생성합니다.
import logging
logger = logging.getLogger(__name__)
import logging
logger = logging.getLogger(__name__)
logger.debug("디버그 메시지")
logger.info("일반 정보")
logger.warning("경고")
logger.error("오류 발생")
logger.critical("치명적 오류")
로그 레벨 순서: DEBUG < INFO < WARNING < ERROR < CRITICAL
__name__을 쓰는 이유# 파일 경로: myproject/utils/parser.py
logger = logging.getLogger(__name__)
# __name__ == "myproject.utils.parser"
# 루트 로거를 쓰면 모든 모듈이 같은 로거를 공유 — 출처 구분 불가
logger = logging.getLogger() # 비권장
logger = logging.getLogger("root") # 비권장
__name__을 쓰면 모듈 계층 구조대로 로거가 생성되어, 어느 파일에서 찍힌 로그인지 추적이 쉬워집니다.
import logging
# 핸들러 — 로그를 어디에 출력할지
handler = logging.StreamHandler() # 콘솔 출력
handler.setLevel(logging.DEBUG)
# 포매터 — 로그 출력 형식
formatter = logging.Formatter(
"%(asctime)s | %(name)s | %(levelname)s | %(message)s"
)
handler.setFormatter(formatter)
# 로거에 핸들러 연결
logger = logging.getLogger(__name__)
logger.setLevel(logging.DEBUG)
logger.addHandler(handler)
logger.info("로거 설정 완료")
# 2024-01-01 12:00:00 | myproject.utils.parser | INFO | 로거 설정 완료
| 개념 | 설명 |
|---|---|
getLogger(__name__) | 모듈 경로 기반 로거 생성 |
setLevel() | 출력할 최소 로그 레벨 설정 |
StreamHandler | 콘솔 출력 핸들러 |
FileHandler | 파일 출력 핸들러 |
Formatter | 로그 출력 형식 지정 |
한 줄 요약:
logging.getLogger(__name__)은 모듈별로 독립된 로거를 생성해, 대규모 프로젝트에서 로그 출처를 명확히 추적할 수 있게 해주는 Python 로깅의 표준 패턴입니다.