💻Develop/🐍Python

Traceback 가독성 높이기

Guraeng 2023. 5. 24. 17:13

Traceback

 Traceback은 예외가 발생한 후의 오류 추적 정보를 보여준다.

오류가 발생한 위치에서부터 호출 스택의 역추적 정보를 보여주는데, 일반적으로 Traceback은 오류 메시지와 함께 출력되며, 프로그램의 실행 중 발생한 예외 상황을 이해하고 디버깅하는 데 도움을 준다.

Traceback에는 오류가 발생한 파일명, 줄 번호, 호출된 함수 또는 메서드의 스택 정보가 포함되는데, 이 정보는 프로그램의 실행 흐름을 따라가며 어떤 함수 또는 메서드에서 오류가 발생했는지를 알려준다.

때문에 예상치 못한 오류가 발생한 코드의 위치를 파악하고 수정하는 데 유용하다.

 

문제는 이게 짧을 수 있지만, 여러 함수를 거치는 경우 전부 보여주기 때문에 로그 화면을 가득 채울때가 있다.

이 때 뭐가 문제인지 확인하고 예외상황을 잡아줘야하는데 Traceback을 이해하는게 불편하다.

이런식으로 한눈에 보기에는 어렵고 지저분하다.
오류가 발생하지 않으면 좋겠고 내가 그걸 잘 잡으면 문제가 없겠지만 실력 부족으로 그건 불가능하여 자주 맞닥뜨리기 때문에 해결방법이 없을까 구글링을 하다 좋은걸 발견했다.

Rich

Github 저장소 링크 : https://github.com/Textualize/rich

 

GitHub - Textualize/rich: Rich is a Python library for rich text and beautiful formatting in the terminal.

Rich is a Python library for rich text and beautiful formatting in the terminal. - GitHub - Textualize/rich: Rich is a Python library for rich text and beautiful formatting in the terminal.

github.com

한글 문서 링크 : https://github.com/textualize/rich/blob/master/README.kr.md

Rich는 터미널에서 풍부한(rich) 텍스트와 아름다운 서식을 지원하기 위한 파이썬 라이브러리로, 터미널 출력에 색깔과 스타일을 입히기 쉽게 도와준다. 또한 Rich는 별다른 설정 없이 표, 진행 바, 마크다운, 소스코드 구문 강조, tracebacks 등을 예쁘게 보여줄 수 있다.
정말 다양한 기능을 제공하지만 이번 글의 핵심인 Traceback을 깔끔하게 바꿔준다.

# shell
python -m pip install rich

# 실행 python 코드

from rich.traceback import install
install()

모듈을 설치한 후, 원하는 코드의 상단에 코드 두 줄만 추가해준다면 아래와 같이 바뀐다.

이전의 Traceback 보다 길어져서 불편할 수 있겠지만 그래도 훨씬 깔끔해져서 보기 좋다

이걸 이제야 알게되다니 학부생 시절부터 python을 사용하며 마주했던 Traceback들이 아른거린다...