TroubleShooting: Traceback Error
🔨 절차형
💡
학습 전략: 연습 (Practice)
즉시 실전에 적용해 보는 것이 핵심
문제 설명
서버 실행 중 Traceback error가 나오면서 서버가 멈추는 현상이 발생했습니다.
해결 방법
1. 문제 분석
Traceback limit의 기본값이 10으로 설정되어 있음을 확인했습니다.
2. 해결 코드
Python 코드로 limit을 증가시켜 문제를 해결할 수 있습니다:
1
2
import sys
sys.tracebacklimit = 50
상세 설명
sys.tracebacklimit이란?
Python의 sys.tracebacklimit은 예외 발생 시 표시되는 traceback 스택의 깊이를 제어합니다.
- 기본값: 10
- 설정 가능 범위: 0 ~ 무제한
- 효과: 더 많은 스택 프레임 정보 확인 가능
활용 예시
디버깅 모드에서 상세 정보 출력
1
2
3
4
5
6
7
import sys
# 개발 환경
if DEBUG:
sys.tracebacklimit = 100
else:
sys.tracebacklimit = 5
Traceback 완전히 숨기기
1
2
import sys
sys.tracebacklimit = 0 # traceback 출력 안 함
주의사항
- 운영 환경: 보안상 상세한 에러 정보를 노출하지 않도록 제한
- 개발 환경: 디버깅을 위해 충분히 높은 값 설정
- 로깅: traceback 정보를 로그 파일에 기록하는 것이 좋음
관련 설정
로깅과 함께 사용
1
2
3
4
5
6
7
8
9
10
11
12
import sys
import logging
import traceback
logging.basicConfig(level=logging.ERROR)
try:
# 서버 코드
pass
except Exception as e:
logging.error(f"Error: {e}")
logging.error(traceback.format_exc())