PHpullh

PYTHON · 예외처리

로깅 (logging)

logging 모듈로 구조화된 로그를 출력하여 디버깅과 모니터링을 수행합니다.

예외처리중급logging로깅로그debug

핵심 설명

logging 모듈로 구조화된 로그를 출력하여 디버깅과 모니터링을 수행합니다.

Python code

import logging

# 기본 설정
logging.basicConfig(
    level=logging.DEBUG,
    format="%(asctime)s [%(levelname)s] %(name)s: %(message)s",
    datefmt="%H:%M:%S"
)

# 모듈별 로거
logger = logging.getLogger(__name__)

# 로그 레벨
logger.debug("디버그 정보")
logger.info("일반 정보")
logger.warning("경고!")
logger.error("에러 발생")
logger.critical("치명적 에러")

# 예외 정보 포함
try:
    result = 1 / 0
except ZeroDivisionError:
    logger.exception("계산 오류")  # 스택 트레이스 포함

# 구조화된 로깅
def process_order(order_id: int, amount: float):
    logger.info(
        "주문 처리: order_id=%d, amount=%.2f",
        order_id, amount
    )
    # f-string 대신 % 포맷 사용 (지연 평가)
    return {"status": "완료"}

process_order(123, 45000.0)

# 로거 계층 구조
child_logger = logging.getLogger(__name__ + ".sub")
child_logger.info("자식 로거 메시지")

학습 팁

로그 메시지에 f-string 대신 % 포맷을 사용하면, 로그 레벨이 낮아 출력되지 않을 때 문자열 포맷팅 비용을 절약합니다.

주의할 점

print() 대신 logging을 사용하세요. 로깅은 레벨 제어, 파일 출력, 포맷 설정 등 운영에 필수적인 기능을 제공합니다.

자주 묻는 질문

로깅 (logging)란 무엇인가요?

logging 모듈로 구조화된 로그를 출력하여 디버깅과 모니터링을 수행합니다.

로깅 (logging) 학습 시 주의할 점은 무엇인가요?

print() 대신 logging 을 사용하세요. 로깅은 레벨 제어, 파일 출력, 포맷 설정 등 운영에 필수적인 기능을 제공합니다.

Continue Learning

Python 학습을 이어가세요

총 200개의 독립 HTML 학습 문서 중 하나입니다. 각 문서는 고유 URL과 canonical 메타데이터를 가집니다.