[python] Flask에서 에러 핸들링 및 로그 처리 방법

Flask는 웹 응용 프로그램을 개발하기 위한 경량화된 웹 프레임워크로, 에러 핸들링과 로그 처리는 웹 애플리케이션의 안정성과 신뢰성을 보장하는 중요한 요소입니다. 이번 블로그에서는 Flask에서의 에러 핸들링과 로그 처리 방법에 대해 설명하겠습니다.

에러 핸들링

웹 응용 프로그램에서 발생하는 오류를 적절하게 처리하는 것은 사용자 경험을 향상시키고 성능을 최적화하는 데 도움이 됩니다. Flask에서는 다양한 유형의 에러를 핸들링할 수 있는 기능을 제공합니다.

기본적인 에러 핸들링

가장 일반적인 방법은 @app.errorhandler 데코레이터를 사용하여 특정한 HTTP 오류 코드에 대한 핸들러를 정의하는 것입니다. 이를 통해 해당 오류가 발생했을 때 사용자에게 보여줄 에러 페이지를 정의할 수 있습니다.

from flask import Flask, render_template

app = Flask(__name__)

@app.errorhandler(404)
def page_not_found(error):
    return render_template('404.html'), 404

사용자 정의 에러 페이지

또한 개발자는 직접적으로 특정한 예외를 핸들링하여 사용자 정의 에러 페이지를 제공할 수 있습니다.

from flask import Flask, render_template
from werkzeug.exceptions import HTTPException

app = Flask(__name__)

@app.errorhandler(HTTPException)
def handle_exception(e):
    return render_template('error.html', error=e), e.code

로그 처리

로그는 응용 프로그램의 동작을 추적하고 모니터링하기 위해 필수적입니다. Flask에서는 기본적으로 로깅 기능을 제공하며, 이를 통해 애플리케이션 실행 중에 발생하는 다양한 이벤트를 기록할 수 있습니다.

기본 로깅 설정

Flask 애플리케이션에서 기본적인 로깅을 위해서는 다음과 같이 설정할 수 있습니다.

import logging
from flask import Flask

app = Flask(__name__)
app.logger.setLevel(logging.INFO)

파일로 로그 기록

로그를 파일에 기록하려면 다음과 같이 설정할 수 있습니다.

import logging
from logging.handlers import RotatingFileHandler
from flask import Flask

app = Flask(__name__)
file_handler = RotatingFileHandler('app.log', maxBytes=10240, backupCount=10)
file_handler.setLevel(logging.INFO)
app.logger.addHandler(file_handler)

마무리

이렇게 Flask에서의 에러 핸들링과 로그 처리 방법을 통해 웹 애플리케이션의 안정성과 신뢰성을 향상시킬 수 있습니다. 적절한 에러 핸들링과 로그 처리는 사용자 경험을 개선하고 문제점을 신속히 해결할 수 있는데 큰 도움이 됩니다.

참고문헌: Flask 문서