diff --git a/application/__init__.py b/application/__init__.py index 2040aba..160468a 100644 --- a/application/__init__.py +++ b/application/__init__.py @@ -22,7 +22,8 @@ import sys import yaml -from flask import Flask, Blueprint +from flask import Flask, Blueprint, jsonify +from werkzeug.exceptions import HTTPException from werkzeug.serving import WSGIRequestHandler try: @@ -46,6 +47,24 @@ else: app = Flask(__name__, static_folder="../client/build") + +@app.errorhandler(Exception) +def exception_handler(error): + if isinstance(error, HTTPException): + app.logger.exception(str(error)) + return error.get_response(), error.code + + app.logger.exception(error) + return jsonify(error=str(error)), 500 + + +@app.after_request +def handle_after_request(response: Flask.response_class): + if response.content_type == 'application/json': + app.logger.info(response.get_data(as_text=True)) + return response + + app.secret_key = os.getenv('SECRET_KEY', os.urandom(16)) APP_PORT: int