파이썬 프로그램에서 print는 디버깅 정보를 출력하는 일반적인 방법입니다. 하지만 실제 운영 환경에서는 더 유연한 로깅 시스템을 사용하여 로그 레벨을 제어하고 파일에 기록하는 것이 필요합니다. 이를 위해 print 문을 logging 모듈의 info 로깅으로 대체하는 방법을 알아보겠습니다.
먼저, 파이썬의 logging 모듈은 다양한 로그 레벨과 콘솔 또는 파일 출력을 지원하는 강력한 로깅 시스템을 제공합니다. 기본 설정을 logging.basicConfig() 메서드로 구성할 수 있으며, 여기에는 로그 레벨, 형식 등의 옵션을 포함할 수 있습니다. 이후 logging.getLogger(__name__)를 사용해 로거 인스턴스를 생성하고, 원래 print 문이 있던 부분을 logger.info()로 대체하면 됩니다.
아래는 로깅을 설정하는 예제 코드입니다. 로그 형식은 시간, 로거 이름, 로그 레벨, 메시지 등을 포함하도록 지정했습니다.
import logging
# 로깅 기본 설정
logging.basicConfig(
level=logging.INFO,
format="%(asctime)s [%(levelname)s] %(message)s",
datefmt="%Y-%m-%d %H:%M:%S"
)
# 로거 인스턴스 생성
logger = logging.getLogger("AppLogger")
# 로그 기록 예시
logger.info("프로그램 시작")
# 비즈니스 로직 실행
logger.info("작업 완료")
위 코드를 실행하면 아래와 같은 로그가 콘솔에 출력됩니다:
2025-03-13 14:20:00 [INFO] 프로그램 시작
2025-03-13 14:20:01 [INFO] 작업 완료
또한 로그를 파일에 저장하려면 basicConfig에 filename 매개변수를 추가할 수 있습니다. 이렇게 하면 로그 데이터가 지정된 파일에 기록됩니다.
logging.basicConfig(
filename="application.log",
level=logging.INFO,
format="%(asctime)s [%(levelname)s] %(message)s",
datefmt="%Y-%m-%d %H:%M:%S"
)
logging 모듈은 단순한 정보 출력뿐만 아니라 다양한 로그 레벨(DEBUG, WARNING, ERROR)을 지원합니다. 이는 문제 해결 시 중요한 역할을 합니다. 예를 들어, 정상적인 동작을 알리기 위해 logger.info()를 사용하고, 경고나 오류 상황에서는 logger.warning()이나 logger.error()를 사용할 수 있습니다.
결론적으로, print보다 logging 모듈을 사용하면 로그 관리 능력을 크게 향상시킬 수 있습니다. 파일 또는 원격 서버에 로그를 출력할 수 있어 실시간 모니터링 및 분석에도 적합하며, 개발 과정에서 코드의 유지보수성을 높이는 데 도움을 줍니다.