Flask를 사용하여 오류 기록
이 설명과 함께 오류 처리, 특히 오류 로깅에 대해 배웁니다. 이 문서를 마치면 파일에 오류를 기록하는 방법과 Flask에서 오류를 기록하는 다른 방법을 확인하기 위해 어디로 가야 하는지 알게 될 것입니다.
Flask의 로깅 모듈을 사용하여 오류 기록
일반적으로 프로덕션 앱은 디버그 모드에 있지 않으므로 로깅
모듈을 사용할 수 있는 유일한 방법은 오류가 있음을 아는 것입니다. 이 경우 파일로 전송되므로 나중에 보고 디버깅하고 문제를 해결할 수 있습니다.
이것은 기본적으로 활성화되어 있지 않습니다. Flask 앱에 로깅 기능을 추가해야 합니다. 그렇기 때문에 디버그 모드가 아닌 실행 중인 정말 기본적인 Flask 앱을 보여드리겠습니다.
from flask import Flask
app = Flask(__name__)
@app.route("/")
def Error_Los():
return "The page without error"
if __name__ == "__main__":
app.run()
가장 먼저 사용할 것은 logging
모듈입니다. 이것을 가져와야 합니다. 내장된 Python 모듈이므로 Python 3를 사용하는 경우 설치할 필요가 없습니다.
logging
모듈에서 FileHandler
및 WARNING
이라는 두 가지 항목을 가져옵니다.
FileHandler
는 오류를 파일에 기록하는 방법입니다. ‘WARNING’은 로그를 트리거하려는 수준입니다. 더 심각한 오류와 같은 것일 수 있습니다.
하지만 원하는 만큼 로그할 수 있기 때문에 파일에 로그인할 때 경고를 표시하는 것이 좋습니다.
from logging import FileHandler, WARNING
이제 FileHandler
를 인스턴스화해야 하며 오류가 저장될 파일 이름을 전달해야 합니다.
F_H = FileHandler("errorlogs.txt")
이제 setLevel()
을 사용하여 파일 처리기의 수준을 설정해야 합니다. 파일 FileHandler
클래스의 메서드이므로 logging
모듈에서 가져온 WARNING
수준을 전달합니다.
이제 Flask 앱에 로거를 사용한 다음 addHandler
를 사용해야 합니다. 그 안에는 위에서 만든 파일 처리기 개체가 있습니다.
F_H.setLevel(WARNING)
app.logger.addHandler(F_H)
이 앱을 실행하면 errorlogs.txt
파일이 생성됩니다. 한 가지 유의해야 할 점은 찾고 있는 오류 유형이 아니기 때문에 응용 프로그램만 기록하고 HTTP 오류는 기록하지 않는다는 것입니다. 응용 프로그램이 아닙니다.
이제 1/0
을 반환하려고 시도하지만 실패합니다. 서버를 다시 실행하고 페이지를 다시 시작합니다.
HTTP가 가리킬 수 없는 일부 오류를 의미하는 내부 서버 오류가 발생하지만 로그 파일을 보면 오류 세부 정보를 볼 수 있습니다.
def Error_Los():
return 1 / 0
출력:
오류 로깅을 위한 다른 핸들러에 대해 자세히 알아보려면 여기에서 공식 문서를 방문하세요.
완전한 Python 코드:
from flask import Flask
from logging import FileHandler, WARNING
app = Flask(__name__)
F_H = FileHandler("errorlogs.txt")
F_H.setLevel(WARNING)
app.logger.addHandler(F_H)
@app.route("/")
def Error_Los():
return 1 / 0
if __name__ == "__main__":
app.run()
Hello! I am Salman Bin Mehmood(Baum), a software developer and I help organizations, address complex problems. My expertise lies within back-end, data science and machine learning. I am a lifelong learner, currently working on metaverse, and enrolled in a course building an AI application with python. I love solving problems and developing bug-free software for people. I write content related to python and hot Technologies.
LinkedIn