Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

파이썬 로깅(logging) 완벽 가이드: 기본 사용법부터 파일 저장까지

이 글에서는 파이썬(Python)의 로깅(logging) 모듈에 대해 알아보고, 프로그램 보호와 보안 관점에서 로그를 기록하는 다양한 단계별 방법을 살펴봅니다.

먼저 logging 모듈을 임포트한 뒤, 로거(logger)를 사용해 현재 상태를 확인하고 로그 메시지를 기록할 수 있습니다. 파이썬 로깅은 다음과 같은 5가지 심각도(severity) 수준을 제공합니다.

  • DEBUG – 상세한 디버깅 정보
  • INFO – 일반적인 정보성 메시지
  • WARNING – 경고 메시지
  • ERROR – 오류 메시지
  • CRITICAL – 치명적인 오류 메시지

logging 모듈은 별도의 설정 작업 없이도 바로 사용할 수 있어 매우 편리합니다.

기본 예제

import logging

logging.debug('디버그 메시지')
logging.info('정보 메시지')
logging.warning('경고 메시지')
logging.error('오류 메시지')
logging.critical('치명적 오류 메시지')

출력 결과

WARNING:root: 경고 메시지
ERROR:root: 오류 메시지
CRITICAL:root: 치명적 오류 메시지

설정을 따로 하지 않으면 기본적으로 WARNING 수준 이상의 메시지만 기록되기 때문에 DEBUG와 INFO 메시지는 출력되지 않습니다. 이러한 메시지까지 확인하려면 설정을 직접 지정해야 합니다.

basicConfig()로 로그 수준 지정하기

basicConfig() 함수의 level 매개변수를 사용하면 어떤 수준 이상의 로그 메시지를 기록할지 지정할 수 있습니다.

예제

import logging

logging.basicConfig(level=logging.DEBUG)
logging.debug('이 메시지가 기록됩니다')

출력 결과

DEBUG:root: 이 메시지가 기록됩니다

이렇게 설정하면 DEBUG 수준 이상의 모든 메시지가 기록됩니다. 즉, DEBUG부터 CRITICAL까지 모든 로그를 확인할 수 있습니다.

콘솔 대신 파일에 로그 기록하기

실제 애플리케이션에서는 콘솔 출력보다 파일에 로그를 남기는 것이 훨씬 유용합니다. 나중에 문제를 추적하거나 시스템 동작을 분석할 때 파일 로그가 큰 도움이 됩니다.

예제

import logging

logging.basicConfig(filename='app.log', filemode='w',
format='%(name)s - %(levelname)s - %(message)s')
logging.warning('파일에 기록되는 메시지입니다')

출력 결과 (app.log)

root - WARNING - 파일에 기록되는 메시지입니다

여기서 filemode='w'로 지정하면 파일이 쓰기 전용으로 열려 기존 내용을 덮어쓰게 됩니다. 반면 기본값인 'a'(append, 추가 모드)로 두면 프로그램을 실행할 때마다 로그가 파일 끝에 계속 누적됩니다.

마무리

이번 글에서는 파이썬 로깅의 기본 개념, 5가지 로그 수준, 그리고 basicConfig()를 활용한 로그 수준 설정과 파일 기록 방법까지 살펴봤습니다. 로깅은 디버깅과 운영 모니터링에 필수적인 도구이므로, 프로젝트 초기부터 적절히 활용하는 습관을 들이는 것이 좋습니다.