diff --git a/src/config.py b/src/config.py new file mode 100644 index 0000000..dac96fa --- /dev/null +++ b/src/config.py @@ -0,0 +1,50 @@ +import os +import json +import dotenv +import logging +import logging.config +from pythonjsonlogger import jsonlogger + +# https://hackersandslackers.com/configure-flask-applications/ +# + +app_root = os.path.dirname(os.path.abspath(__file__)) +credentials_directory = os.path.join(app_root, '../instances') + +# REPLACE CREDENTIALS.env WITH CORRECT FILE NAME +dotenv.load_dotenv(os.path.join(credentials_directory, 'CREDENTIALS.env')) +db_creds_path = os.path.join(credentials_directory, 'dbcreds.json') + +class Config: + APP_NAME = 'APP_NAME' + APP_ROOT = app_root + SECRET_KEY = os.environ.get('SECRET_KEY') + FLASK_ENV = os.environ.get('FLASK_ENV') + FORMATTER = jsonlogger.JsonFormatter('%(asctime)s %(name)s %(levelname)s %(lineno)s %(message)s', static_fields={'app_name': '[{}]'.format(APP_NAME)}) + + DB_CREDS = {} + with open(db_creds_path, 'r') as in_file: + DB_CREDS = json.load(in_file) + +class ProdConfig( Config ): + LOGGER = None + DEBUG = False + TESTING = False + +class LocalConfig( Config ): + DEBUG = True + TESTING = True + + log_path = os.path.join(Config.APP_ROOT, 'logs') + log_filename = os.path.join(log_path, '{}_local.log'.format(Config.APP_NAME)) + + LOGGER = logging.getLogger(__name__) + logging.basicConfig(level=logging.INFO) + #LOGGER = logging.getLogger('{}'.format(Config.APP_NAME)) + logger_file_handler = logging.FileHandler(log_filename) + logger_file_handler.setLevel(logging.INFO) + formatter = Config.FORMATTER + logger_file_handler.setFormatter(formatter) + LOGGER.addHandler(logger_file_handler) + LOGGER.setLevel(logging.DEBUG) +