MapleStory Finger Point

Development/Debugging

파이썬 에러 메시지 쉽게 저장하기

吳鍾振 2021. 1. 25. 15:59

프로그램을 만들고 실행했는데 이유 없이 종료된다면 어디서 에러가 발생했는지, 어떤 에러인지 알아야 한다.

파이썬의 traceback 모듈과 try except 구문이면 에러를 찾을 수 있다.

import time
import traceback

def ErrorLog(error: str):
    current_time = time.strftime("%Y.%m.%d/%H:%M:%S", time.localtime(time.time()))
    with open("Log.txt", "a") as f:
        f.write(f"[{current_time}] - {error}\n")

try:
    print(A)
except Exception:
    err = traceback.format_exc()
    ErrorLog(str(err))

 

A가 무엇인지 정의되어 있지 않기 때문에, 위의 코드를 실행하면 당연히 에러가 발생한다.

그러면 이 코드가 있는 디렉터리에 Log.txt라는 텍스트 파일이 하나 생긴다.

열어서 확인해보면 

[2021.01.25/15:52:53] - Traceback (most recent call last):
  File "C:/Users/user/AppData/Roaming/JetBrains/PyCharmCE2020.3/scratches/scratch_6.py", line 10, in <module>
    print(A)
NameError: name 'A' is not defined

위와 같이 에러가 발생한 시간, 파일 이름, 위치, 에러 명이 모두 저장된다.

앞으로 프로그램을 만들때, 기본적으로 이 코드를 적용해놓는 것이 좋을 것 같다.

 

결과!

반응형