반응형
단순 except Logging
- 부족한 디버깅 정보
- 예외의 구체적인 발생 위치(파일, 라인 번호)가 출력되지 않음.
- 예외가 발생한 호출 스택의 흐름(traceback)을 확인할 수 없음.
- 디버깅 시간 증가
- 단순 예외 메시지로는 원인을 추적하기 어려워, 코드 전반을 다시 분석해야 할 가능성이 큼.
import logging
try:
# 예외를 발생시키는 코드
data = scraper.run()
except Exception as e:
# 단순히 예외 메시지만 로깅
logging.error(f"작업 처리 중 오류 발생: {e}")
2024-11-22 08:58:54 - ERROR - root - 작업 처리 중 오류 발생: unhashable type: 'slice'
상세 except Logging
- 추적 가능한 디버깅 정보
- 예외가 발생한 파일 이름, 라인 번호, 호출 스택(traceback) 등 상세 정보를 포함.
- 원인이 되는 코드 경로를 명확히 파악 가능.
- 디버깅 효율성 향상
- 발생한 예외의 전체 흐름을 보여주므로 문제 해결 시간을 단축.
- 호출 스택을 통해 문제의 근본 원인을 정확히 추적 가능.
import logging
import traceback
try:
# 예외를 발생시키는 코드
data = test.run()
except Exception as e:
# 상세한 예외 정보 로깅
logging.error(traceback.format_exc())
2024-11-22 09:03:16 Traceback (most recent call last):
2024-11-22 09:03:16 File "/usr/src/app/app/main.py", line 47, in process_tasks
2024-11-22 09:03:16 data = test.run()
2024-11-22 09:03:16 File "/usr/src/app/app/internal.py", line 287, in run
2024-11-22 09:03:16 test_data = self.internal_func()
2024-11-22 09:03:16 File "/usr/src/app/app/internal.py", line 170, in internal_func
2024-11-22 09:03:16 logging.info(f'test_logging: {test_data[:100]}')
2024-11-22 09:03:16 TypeError: unhashable type: 'slice'
단순 vs 상세 비교
구분 | 단순 | 상세 |
로깅 내용 | 예외 메세지만 기록 | 예외 메세지와 호출 스택 전체 기록 |
디버깅 정보 제공 | 부족 | 풍부 |
디버깅 시간 | 문제 원인 추적에 많은 시간 소요 | 호출 스택을 통해 문제 원인을 빠르게 추적 가능 |
코드 유지보수성 | 낮음 | 높음 |
traceback — 스택 트레이스백 인쇄와 조회 — Python 3.7.17 문서
traceback — 스택 트레이스백 인쇄와 조회 소스 코드: Lib/traceback.py 이 모듈은 파이썬 프로그램의 스택 트레이스를 추출, 포맷 및 인쇄하는 표준 인터페이스를 제공합니다. 스택 트레이스를 인쇄할
docs.python.org
728x90
반응형
'Develop' 카테고리의 다른 글
[React] dyld: Library not loaded: /usr/local/homebrew/opt/icu4c/lib/libicui18n.74.dylib (0) | 2024.12.10 |
---|---|
[Python] SyntaxError: f-string: unmatched '[' 원인 및 해결 방법 (0) | 2024.11.26 |
[Docker] docker-compose 실행 및 중지, 테스트 방법 (0) | 2024.11.25 |
[Python] extend()로 List 자료형에 List 요소 추가하기 (0) | 2024.11.18 |
[Python] BeautifulSoup select() CSS 선택자 사용법 (2) | 2024.11.17 |
[Web] Rendering on the Web (0) | 2024.11.12 |
[OpenAI] GPT Response JSON Schema로 관리하기 (5) | 2024.11.07 |
[OpenAI] 1.0.0 Migration 관련 Function 변경 (2) | 2024.11.05 |