📚 Improved logging structure & efficiency 🖼️
This commit is contained in:
107
backend/app.py
107
backend/app.py
@@ -367,6 +367,113 @@ def register_aggressive_shutdown():
|
||||
# Shutdown-Handler registrieren
|
||||
register_aggressive_shutdown()
|
||||
|
||||
def apply_production_config(app):
|
||||
"""Wendet die Production-Konfiguration auf die Flask-App an"""
|
||||
app_logger.info("[PRODUCTION] Aktiviere Production-Konfiguration für Mercedes-Benz TBA")
|
||||
|
||||
# Dynamische Werte setzen
|
||||
from utils.settings import SECRET_KEY, SESSION_LIFETIME
|
||||
ProductionConfig.SECRET_KEY = os.environ.get('SECRET_KEY') or SECRET_KEY
|
||||
ProductionConfig.PERMANENT_SESSION_LIFETIME = SESSION_LIFETIME
|
||||
|
||||
# Flask-Basis-Konfiguration
|
||||
app.config.update({
|
||||
"ENV": ProductionConfig.ENV,
|
||||
"DEBUG": ProductionConfig.DEBUG,
|
||||
"TESTING": ProductionConfig.TESTING,
|
||||
"SECRET_KEY": ProductionConfig.SECRET_KEY,
|
||||
"WTF_CSRF_ENABLED": ProductionConfig.WTF_CSRF_ENABLED,
|
||||
"WTF_CSRF_TIME_LIMIT": ProductionConfig.WTF_CSRF_TIME_LIMIT,
|
||||
"SESSION_COOKIE_SECURE": ProductionConfig.SESSION_COOKIE_SECURE,
|
||||
"SESSION_COOKIE_HTTPONLY": ProductionConfig.SESSION_COOKIE_HTTPONLY,
|
||||
"SESSION_COOKIE_SAMESITE": ProductionConfig.SESSION_COOKIE_SAMESITE,
|
||||
"PERMANENT_SESSION_LIFETIME": ProductionConfig.PERMANENT_SESSION_LIFETIME,
|
||||
"SEND_FILE_MAX_AGE_DEFAULT": ProductionConfig.SEND_FILE_MAX_AGE_DEFAULT,
|
||||
"TEMPLATES_AUTO_RELOAD": ProductionConfig.TEMPLATES_AUTO_RELOAD,
|
||||
"EXPLAIN_TEMPLATE_LOADING": ProductionConfig.EXPLAIN_TEMPLATE_LOADING,
|
||||
"MAX_CONTENT_LENGTH": ProductionConfig.MAX_CONTENT_LENGTH,
|
||||
"JSON_SORT_KEYS": ProductionConfig.JSON_SORT_KEYS,
|
||||
"JSONIFY_PRETTYPRINT_REGULAR": ProductionConfig.JSONIFY_PRETTYPRINT_REGULAR,
|
||||
"JSONIFY_MIMETYPE": ProductionConfig.JSONIFY_MIMETYPE,
|
||||
"SQLALCHEMY_TRACK_MODIFICATIONS": ProductionConfig.SQLALCHEMY_TRACK_MODIFICATIONS,
|
||||
"SQLALCHEMY_ENGINE_OPTIONS": ProductionConfig.SQLALCHEMY_ENGINE_OPTIONS
|
||||
})
|
||||
|
||||
# Jinja2-Umgebung für Production
|
||||
app.jinja_env.globals.update({
|
||||
'production_mode': True,
|
||||
'development_mode': False,
|
||||
'optimized_mode': ProductionConfig.OPTIMIZED_MODE,
|
||||
'use_minified_assets': ProductionConfig.USE_MINIFIED_ASSETS,
|
||||
'disable_animations': ProductionConfig.DISABLE_ANIMATIONS,
|
||||
'limit_glassmorphism': ProductionConfig.LIMIT_GLASSMORPHISM,
|
||||
'environment_name': ProductionConfig.ENVIRONMENT_NAME,
|
||||
'company_name': ProductionConfig.COMPANY_NAME,
|
||||
'compliance_mode': ProductionConfig.COMPLIANCE_MODE,
|
||||
'offline_mode': ProductionConfig.OFFLINE_MODE,
|
||||
'use_local_assets_only': ProductionConfig.USE_LOCAL_ASSETS_ONLY,
|
||||
'base_template': 'base-production.html'
|
||||
})
|
||||
|
||||
app_logger.info(f"[PRODUCTION] ✅ {ProductionConfig.COMPANY_NAME} Konfiguration aktiviert")
|
||||
app_logger.info(f"[PRODUCTION] ✅ Environment: {ProductionConfig.ENVIRONMENT_NAME}")
|
||||
app_logger.info(f"[PRODUCTION] ✅ Air-Gapped Mode: {ProductionConfig.OFFLINE_MODE}")
|
||||
app_logger.info(f"[PRODUCTION] ✅ Compliance Mode: {ProductionConfig.COMPLIANCE_MODE}")
|
||||
app_logger.info(f"[PRODUCTION] ✅ Performance Optimized: {ProductionConfig.OPTIMIZED_MODE}")
|
||||
|
||||
def apply_development_config(app):
|
||||
"""Wendet die Development-Konfiguration auf die Flask-App an"""
|
||||
app_logger.info("[DEVELOPMENT] Aktiviere Development-Konfiguration")
|
||||
|
||||
# Dynamische Werte setzen
|
||||
from utils.settings import SECRET_KEY, SESSION_LIFETIME
|
||||
DevelopmentConfig.SECRET_KEY = os.environ.get('SECRET_KEY') or SECRET_KEY
|
||||
DevelopmentConfig.PERMANENT_SESSION_LIFETIME = SESSION_LIFETIME
|
||||
|
||||
# Flask-Basis-Konfiguration
|
||||
app.config.update({
|
||||
"ENV": DevelopmentConfig.ENV,
|
||||
"DEBUG": DevelopmentConfig.DEBUG,
|
||||
"TESTING": DevelopmentConfig.TESTING,
|
||||
"SECRET_KEY": DevelopmentConfig.SECRET_KEY,
|
||||
"WTF_CSRF_ENABLED": DevelopmentConfig.WTF_CSRF_ENABLED,
|
||||
"WTF_CSRF_TIME_LIMIT": DevelopmentConfig.WTF_CSRF_TIME_LIMIT,
|
||||
"SESSION_COOKIE_SECURE": DevelopmentConfig.SESSION_COOKIE_SECURE,
|
||||
"SESSION_COOKIE_HTTPONLY": DevelopmentConfig.SESSION_COOKIE_HTTPONLY,
|
||||
"SESSION_COOKIE_SAMESITE": DevelopmentConfig.SESSION_COOKIE_SAMESITE,
|
||||
"PERMANENT_SESSION_LIFETIME": DevelopmentConfig.PERMANENT_SESSION_LIFETIME,
|
||||
"SEND_FILE_MAX_AGE_DEFAULT": DevelopmentConfig.SEND_FILE_MAX_AGE_DEFAULT,
|
||||
"TEMPLATES_AUTO_RELOAD": DevelopmentConfig.TEMPLATES_AUTO_RELOAD,
|
||||
"EXPLAIN_TEMPLATE_LOADING": DevelopmentConfig.EXPLAIN_TEMPLATE_LOADING,
|
||||
"MAX_CONTENT_LENGTH": DevelopmentConfig.MAX_CONTENT_LENGTH,
|
||||
"JSON_SORT_KEYS": DevelopmentConfig.JSON_SORT_KEYS,
|
||||
"JSONIFY_PRETTYPRINT_REGULAR": DevelopmentConfig.JSONIFY_PRETTYPRINT_REGULAR,
|
||||
"JSONIFY_MIMETYPE": DevelopmentConfig.JSONIFY_MIMETYPE,
|
||||
"SQLALCHEMY_TRACK_MODIFICATIONS": DevelopmentConfig.SQLALCHEMY_TRACK_MODIFICATIONS,
|
||||
"SQLALCHEMY_ENGINE_OPTIONS": DevelopmentConfig.SQLALCHEMY_ENGINE_OPTIONS
|
||||
})
|
||||
|
||||
# Jinja2-Umgebung für Development
|
||||
app.jinja_env.globals.update({
|
||||
'production_mode': False,
|
||||
'development_mode': True,
|
||||
'optimized_mode': DevelopmentConfig.OPTIMIZED_MODE,
|
||||
'use_minified_assets': DevelopmentConfig.USE_MINIFIED_ASSETS,
|
||||
'disable_animations': DevelopmentConfig.DISABLE_ANIMATIONS,
|
||||
'limit_glassmorphism': DevelopmentConfig.LIMIT_GLASSMORPHISM,
|
||||
'environment_name': DevelopmentConfig.ENVIRONMENT_NAME,
|
||||
'company_name': DevelopmentConfig.COMPANY_NAME,
|
||||
'compliance_mode': DevelopmentConfig.COMPLIANCE_MODE,
|
||||
'offline_mode': DevelopmentConfig.OFFLINE_MODE,
|
||||
'use_local_assets_only': DevelopmentConfig.USE_LOCAL_ASSETS_ONLY,
|
||||
'base_template': 'base.html'
|
||||
})
|
||||
|
||||
app_logger.info(f"[DEVELOPMENT] ✅ {DevelopmentConfig.COMPANY_NAME} Konfiguration aktiviert")
|
||||
app_logger.info(f"[DEVELOPMENT] ✅ Environment: {DevelopmentConfig.ENVIRONMENT_NAME}")
|
||||
app_logger.info(f"[DEVELOPMENT] ✅ Debug Mode: {DevelopmentConfig.DEBUG}")
|
||||
app_logger.info(f"[DEVELOPMENT] ✅ SQL Echo: {DevelopmentConfig.SQLALCHEMY_ENGINE_OPTIONS.get('echo', False)}")
|
||||
|
||||
# Flask-App initialisieren
|
||||
app = Flask(__name__)
|
||||
app.secret_key = SECRET_KEY
|
||||
|
Reference in New Issue
Block a user