"""Run the application""" import sys from logging import getLogger, StreamHandler from flask import Flask from qc_app import create_app from qc_app.check_connections import check_db, check_redis def check_and_build_app() -> Flask: """Setup the application for running.""" # Setup the app appl = create_app() # Check connections check_db(appl.config["SQL_URI"]) check_redis(appl.config["REDIS_URL"]) return appl def setup_logging(appl: Flask): """Setup application logging""" loglevel = appl.config["LOG_LEVEL"].upper() # Maybe call `logging.dictConfig(…)` here instead of all this stuff below handler_stderr = StreamHandler(stream=sys.stderr) appl.logger.addHandler(handler_stderr) rootlogger = getLogger() rootlogger.addHandler(handler_stderr) rootlogger.setLevel(loglevel) appl.logger.setLevel(loglevel) app = check_and_build_app() if __name__ != "__main__":# Running via gunicorn gunicorn_logger = getLogger("gunicorn.error") app.logger.handlers = gunicorn_logger.handlers app.logger.setLevel(gunicorn_logger.level)#pylint: disable=[no-member] if __name__ == "__main__":# Running via flask # Run the app setup_logging(app) app.run()