logging 을 import하여 exc_info를 로그로 남길 수도 있겠지만..
나는 에러가 발생했을 때 마다 slack으로 정확히 어떤 파일의 몇번째 줄에서 문제가 발생했는지 알림을 받고 싶었다.
traceback
모듈을 사용해보자.
traceback은 파이썬의 표준 라이브러리에 포함된 모듈이므로 별도 설치가 필요없다. :D
(구버전 파이썬을 써야만 하는 상황이라 버전 안맞을까봐 걱정할 필요가 없다!)
에러 정보를 콘솔에 출력(print) 하려면
traceback.print_exc()
특정 변수에 예외정보를 담으려면?
try:
test = "이건 테스트지"
print(test[100]) # test 문자열의 100번째 인덱스는 없으니 에러가 발생하지요
except Exception as e:
import traceback
exception_str = traceback.format_exc()
# 슬랙에 에러 정보를 알리는 함수
alert_slack(eception_str, ...)
이러면
exception_str 함수에는
string index out of range Traceback (most recent call last):
File "D:\dev\test.py", line 85, in my_func
print(test[100])
IndexError: string index out of range
이렇게 어떤 파일의 몇번째 줄, 어떤 함수의 어떤 부분에서 문제가 생겼는지에 대한 에러 정보를 담을 수 있다. :)
정말 편하고 쉬운데 이걸 왜 이제야 썼나~
반응형
'파이썬 문법' 카테고리의 다른 글
파이썬 딕셔너리는 추가 순서를 보장한다. (0) | 2023.11.08 |
---|---|
파이썬 상대경로 사용 시 주의 (0) | 2023.04.05 |
파이썬에서 input() 대신 사용할 것 (0) | 2023.03.03 |
[번역] 파이썬에서 구조분해 할당을 하는 5가지 방법 (0) | 2022.12.25 |
Hash Table (0) | 2022.10.09 |