logging.getLogger 사용하기

Tasker_Jang·2026년 3월 31일

1. 기본 개념 — logging.getLogger

getLogger는 Python 표준 라이브러리 logging 모듈의 함수입니다. 이름을 기반으로 로거(Logger) 인스턴스를 가져오거나 생성합니다.

import logging
logger = logging.getLogger(__name__)

2. 기본 사용법

import logging

logger = logging.getLogger(__name__)

logger.debug("디버그 메시지")
logger.info("일반 정보")
logger.warning("경고")
logger.error("오류 발생")
logger.critical("치명적 오류")

로그 레벨 순서: DEBUG < INFO < WARNING < ERROR < CRITICAL


3. __name__을 쓰는 이유

# 파일 경로: myproject/utils/parser.py

logger = logging.getLogger(__name__)
# __name__ == "myproject.utils.parser"

# 루트 로거를 쓰면 모든 모듈이 같은 로거를 공유 — 출처 구분 불가
logger = logging.getLogger()       # 비권장
logger = logging.getLogger("root") # 비권장

__name__을 쓰면 모듈 계층 구조대로 로거가 생성되어, 어느 파일에서 찍힌 로그인지 추적이 쉬워집니다.


4. 로거 설정 방법

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 | 로거 설정 완료

5. 핵심 요약

개념설명
getLogger(__name__)모듈 경로 기반 로거 생성
setLevel()출력할 최소 로그 레벨 설정
StreamHandler콘솔 출력 핸들러
FileHandler파일 출력 핸들러
Formatter로그 출력 형식 지정

한 줄 요약: logging.getLogger(__name__)은 모듈별로 독립된 로거를 생성해, 대규모 프로젝트에서 로그 출처를 명확히 추적할 수 있게 해주는 Python 로깅의 표준 패턴입니다.

profile
ML Engineer 🧠 | AI 모델 개발과 최적화 경험을 기록하며 성장하는 개발자 🚀 The light that burns twice as bright burns half as long ✨

0개의 댓글