📚 Improved logging structure & efficiency 🖼️

This commit is contained in:
Tomczak
2025-06-11 10:39:29 +02:00
parent 24cd99a1f6
commit f32d84acb8
10 changed files with 166 additions and 0 deletions

View File

@@ -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