프로그램을 만들고 실행했는데 이유 없이 종료된다면 어디서 에러가 발생했는지, 어떤 에러인지 알아야 한다.
파이썬의 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
위와 같이 에러가 발생한 시간, 파일 이름, 위치, 에러 명이 모두 저장된다.
앞으로 프로그램을 만들때, 기본적으로 이 코드를 적용해놓는 것이 좋을 것 같다.
반응형
'Development > Debugging' 카테고리의 다른 글
Invalid SOS parameters for sequential JPEG 에러 [Python OpenCV] (0) | 2023.04.26 |
---|---|
QSettings List of Dictionary (0) | 2023.01.13 |
PyInstaller 에러 메시지 출력 (바로 꺼짐 이유 확인) (2) | 2022.07.05 |