728x90
파이썬 코드 디버깅을 할 때에는 print를 사용하는 것보다는 아래와 같이 logging 모듈을 이용하는 것이 좋습니다.
print 문을 이용하면 아래와 같은 단점이 있습니다.
- 성능 문제: print 문은 I/O 작업이므로 성능에 영향을 줄 수 있습니다.
- 로그 관리: print로 출력된 로그는 쉽게 관리되거나 저장되지 않습니다.
- 불필요한 출력: 프로덕션 환경에서 불필요한 출력은 혼란을 초래할 수 있습니다.
이러한 문제를 해결하기 위해, 일반적으로 로깅 모듈을 사용하여 로그를 관리합니다.
Python의 표준 라이브러리인 logging 모듈을 사용하면 됩니다.
logging 모듈을 사용하면 다음과 같은 장점이 있습니다:
- 로그 레벨 설정: DEBUG, INFO, WARNING, ERROR, CRITICAL 등 다양한 로그 레벨을 설정할 수 있습니다.
- 로그 포맷 설정: 로그 메시지의 형식을 사용자 정의할 수 있습니다.
- 로그 핸들러: 로그를 다양한 출력 대상 (콘솔, 파일, 네트워크 등)으로 전송할 수 있습니다.
샘플 코드는 아래와 같습니다.
import logging
# 로깅 설정: 로그 레벨, 포맷, 출력 대상 등을 설정
logging.basicConfig(level=logging.DEBUG, format='%(asctime)s - %(levelname)s - %(message)s')
def sample_function(num):
logging.debug("Function started with num: %s", num)
if num < 5:
logging.warning("The number is less than 5")
elif num == 5:
logging.info("The number is 5")
else:
logging.error("The number is greater than 5")
logging.debug("Function ended")
# 샘플 함수 호출
sample_function(3)
sample_function(5)
sample_function(7)
STDOUT/STDERR
2023-10-29 01:59:43,455 - DEBUG - Function started with num: 3
2023-10-29 01:59:43,458 - WARNING - The number is less than 5
2023-10-29 01:59:43,459 - DEBUG - Function ended
2023-10-29 01:59:43,460 - DEBUG - Function started with num: 5
2023-10-29 01:59:43,461 - INFO - The number is 5
2023-10-29 01:59:43,462 - DEBUG - Function ended
2023-10-29 01:59:43,463 - DEBUG - Function started with num: 7
2023-10-29 01:59:43,464 - ERROR - The number is greater than 5
2023-10-29 01:59:43,465 - DEBUG - Function ended
728x90
'파이썬(Python)' 카테고리의 다른 글
자주 사용하는 함수 목록 (0) | 2023.11.09 |
---|---|
특정 버전과 플랫폼에 맞는 python 모듈 다운로드 (0) | 2023.11.03 |
파이썬에서 f-string에서 줄바꿈 시 앞 공백 제거 방법 (0) | 2022.11.07 |
jupyter notebook에서 install시 자동으로 "y" 입력하기 (0) | 2022.02.11 |
아나콘다 가상환경 명령어 (0) | 2022.02.07 |