📚 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 # Shutdown-Handler registrieren
register_aggressive_shutdown() 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 # Flask-App initialisieren
app = Flask(__name__) app = Flask(__name__)
app.secret_key = SECRET_KEY app.secret_key = SECRET_KEY

View File

@ -4393,3 +4393,24 @@ WHERE users.id = ?
2025-06-11 10:25:53 - [app] app - [INFO] INFO - [CONFIG] Erkannte Umgebung: development 2025-06-11 10:25:53 - [app] app - [INFO] INFO - [CONFIG] Erkannte Umgebung: development
2025-06-11 10:25:53 - [app] app - [INFO] INFO - [CONFIG] Production-Modus: False 2025-06-11 10:25:53 - [app] app - [INFO] INFO - [CONFIG] Production-Modus: False
2025-06-11 10:25:53 - [app] app - [INFO] INFO - [CONFIG] Verwende Development-Konfiguration 2025-06-11 10:25:53 - [app] app - [INFO] INFO - [CONFIG] Verwende Development-Konfiguration
2025-06-11 10:27:45 - [app] app - [WARNING] WARNING - DatabaseCleanupManager nicht verfügbar - Fallback auf Legacy-Cleanup
2025-06-11 10:27:45 - [app] app - [INFO] INFO - Optimierte SQLite-Engine erstellt: C:\Users\TTOMCZA.EMEA\Dev\Projektarbeit-MYP\backend\instance\printer_manager.db
2025-06-11 10:27:45 - [app] app - [INFO] INFO - [CONFIG] Erkannte Umgebung: development
2025-06-11 10:27:45 - [app] app - [INFO] INFO - [CONFIG] Production-Modus: False
2025-06-11 10:27:45 - [app] app - [INFO] INFO - [CONFIG] Verwende Development-Konfiguration
2025-06-11 10:27:45 - [app] app - [INFO] INFO - [DEVELOPMENT] Aktiviere Development-Konfiguration
2025-06-11 10:27:45 - [app] app - [INFO] INFO - [DEVELOPMENT] ✅ MYP Development Environment Konfiguration aktiviert
2025-06-11 10:27:45 - [app] app - [INFO] INFO - [DEVELOPMENT] ✅ Environment: Development/Testing
2025-06-11 10:27:45 - [app] app - [INFO] INFO - [DEVELOPMENT] ✅ Debug Mode: True
2025-06-11 10:27:45 - [app] app - [INFO] INFO - [DEVELOPMENT] ✅ SQL Echo: True
2025-06-11 10:27:53 - [app] app - [WARNING] WARNING - DatabaseCleanupManager nicht verfügbar - Fallback auf Legacy-Cleanup
2025-06-11 10:27:53 - [app] app - [INFO] INFO - Optimierte SQLite-Engine erstellt: C:\Users\TTOMCZA.EMEA\Dev\Projektarbeit-MYP\backend\instance\printer_manager.db
2025-06-11 10:27:53 - [app] app - [INFO] INFO - [CONFIG] Erkannte Umgebung: production
2025-06-11 10:27:53 - [app] app - [INFO] INFO - [CONFIG] Production-Modus: True
2025-06-11 10:27:53 - [app] app - [INFO] INFO - [PRODUCTION] Aktiviere Production-Konfiguration für Mercedes-Benz TBA
2025-06-11 10:27:53 - [app] app - [INFO] INFO - [PRODUCTION] ✅ Mercedes-Benz TBA Marienfelde Konfiguration aktiviert
2025-06-11 10:27:53 - [app] app - [INFO] INFO - [PRODUCTION] ✅ Environment: Production Air-Gapped
2025-06-11 10:27:53 - [app] app - [INFO] INFO - [PRODUCTION] ✅ Air-Gapped Mode: True
2025-06-11 10:27:53 - [app] app - [INFO] INFO - [PRODUCTION] ✅ Compliance Mode: True
2025-06-11 10:27:53 - [app] app - [INFO] INFO - [PRODUCTION] ✅ Performance Optimized: True
2025-06-11 10:27:53 - [app] app - [INFO] INFO - [CONFIG] ✅ Air-Gapped/Offline-Modus aktiviert

View File

@ -63,3 +63,5 @@
2025-06-11 09:25:48 - [permissions] permissions - [INFO] INFO - 🔐 Permission Template Helpers registriert 2025-06-11 09:25:48 - [permissions] permissions - [INFO] INFO - 🔐 Permission Template Helpers registriert
2025-06-11 09:35:07 - [permissions] permissions - [INFO] INFO - 🔐 Permission Template Helpers registriert 2025-06-11 09:35:07 - [permissions] permissions - [INFO] INFO - 🔐 Permission Template Helpers registriert
2025-06-11 09:39:31 - [permissions] permissions - [INFO] INFO - 🔐 Permission Template Helpers registriert 2025-06-11 09:39:31 - [permissions] permissions - [INFO] INFO - 🔐 Permission Template Helpers registriert
2025-06-11 10:27:45 - [permissions] permissions - [INFO] INFO - 🔐 Permission Template Helpers registriert
2025-06-11 10:27:53 - [permissions] permissions - [INFO] INFO - 🔐 Permission Template Helpers registriert

View File

@ -632,3 +632,7 @@
2025-06-11 10:24:10 - [printer_monitor] printer_monitor - [INFO] INFO - 🔍 Automatische Tapo-Erkennung in separatem Thread gestartet 2025-06-11 10:24:10 - [printer_monitor] printer_monitor - [INFO] INFO - 🔍 Automatische Tapo-Erkennung in separatem Thread gestartet
2025-06-11 10:25:53 - [printer_monitor] printer_monitor - [INFO] INFO - 🖨️ Drucker-Monitor initialisiert 2025-06-11 10:25:53 - [printer_monitor] printer_monitor - [INFO] INFO - 🖨️ Drucker-Monitor initialisiert
2025-06-11 10:25:53 - [printer_monitor] printer_monitor - [INFO] INFO - 🔍 Automatische Tapo-Erkennung in separatem Thread gestartet 2025-06-11 10:25:53 - [printer_monitor] printer_monitor - [INFO] INFO - 🔍 Automatische Tapo-Erkennung in separatem Thread gestartet
2025-06-11 10:27:45 - [printer_monitor] printer_monitor - [INFO] INFO - 🖨️ Drucker-Monitor initialisiert
2025-06-11 10:27:45 - [printer_monitor] printer_monitor - [INFO] INFO - 🔍 Automatische Tapo-Erkennung in separatem Thread gestartet
2025-06-11 10:27:53 - [printer_monitor] printer_monitor - [INFO] INFO - 🖨️ Drucker-Monitor initialisiert
2025-06-11 10:27:53 - [printer_monitor] printer_monitor - [INFO] INFO - 🔍 Automatische Tapo-Erkennung in separatem Thread gestartet

View File

@ -145,3 +145,5 @@
2025-06-11 10:22:20 - [scheduler] scheduler - [INFO] INFO - Task check_jobs registriert: Intervall 30s, Enabled: True 2025-06-11 10:22:20 - [scheduler] scheduler - [INFO] INFO - Task check_jobs registriert: Intervall 30s, Enabled: True
2025-06-11 10:24:10 - [scheduler] scheduler - [INFO] INFO - Task check_jobs registriert: Intervall 30s, Enabled: True 2025-06-11 10:24:10 - [scheduler] scheduler - [INFO] INFO - Task check_jobs registriert: Intervall 30s, Enabled: True
2025-06-11 10:25:53 - [scheduler] scheduler - [INFO] INFO - Task check_jobs registriert: Intervall 30s, Enabled: True 2025-06-11 10:25:53 - [scheduler] scheduler - [INFO] INFO - Task check_jobs registriert: Intervall 30s, Enabled: True
2025-06-11 10:27:45 - [scheduler] scheduler - [INFO] INFO - Task check_jobs registriert: Intervall 30s, Enabled: True
2025-06-11 10:27:53 - [scheduler] scheduler - [INFO] INFO - Task check_jobs registriert: Intervall 30s, Enabled: True

View File

@ -63,3 +63,5 @@
2025-06-11 09:25:48 - [security] security - [INFO] INFO - 🔒 Security System initialisiert 2025-06-11 09:25:48 - [security] security - [INFO] INFO - 🔒 Security System initialisiert
2025-06-11 09:35:07 - [security] security - [INFO] INFO - 🔒 Security System initialisiert 2025-06-11 09:35:07 - [security] security - [INFO] INFO - 🔒 Security System initialisiert
2025-06-11 09:39:31 - [security] security - [INFO] INFO - 🔒 Security System initialisiert 2025-06-11 09:39:31 - [security] security - [INFO] INFO - 🔒 Security System initialisiert
2025-06-11 10:27:45 - [security] security - [INFO] INFO - 🔒 Security System initialisiert
2025-06-11 10:27:53 - [security] security - [INFO] INFO - 🔒 Security System initialisiert

View File

@ -528,3 +528,21 @@
2025-06-11 10:25:53 - [startup] startup - [INFO] INFO - 🪟 Windows-Modus: Aktiviert 2025-06-11 10:25:53 - [startup] startup - [INFO] INFO - 🪟 Windows-Modus: Aktiviert
2025-06-11 10:25:53 - [startup] startup - [INFO] INFO - 🔒 Windows-sichere Log-Rotation: Aktiviert 2025-06-11 10:25:53 - [startup] startup - [INFO] INFO - 🔒 Windows-sichere Log-Rotation: Aktiviert
2025-06-11 10:25:53 - [startup] startup - [INFO] INFO - ================================================== 2025-06-11 10:25:53 - [startup] startup - [INFO] INFO - ==================================================
2025-06-11 10:27:45 - [startup] startup - [INFO] INFO - ==================================================
2025-06-11 10:27:45 - [startup] startup - [INFO] INFO - [START] MYP Platform Backend wird gestartet...
2025-06-11 10:27:45 - [startup] startup - [INFO] INFO - 🐍 Python Version: 3.13.3 (tags/v3.13.3:6280bb5, Apr 8 2025, 14:47:33) [MSC v.1943 64 bit (AMD64)]
2025-06-11 10:27:45 - [startup] startup - [INFO] INFO - 💻 Betriebssystem: nt (win32)
2025-06-11 10:27:45 - [startup] startup - [INFO] INFO - 📁 Arbeitsverzeichnis: C:\Users\TTOMCZA.EMEA\Dev\Projektarbeit-MYP\backend
2025-06-11 10:27:45 - [startup] startup - [INFO] INFO - ⏰ Startzeit: 2025-06-11T10:27:45.592510
2025-06-11 10:27:45 - [startup] startup - [INFO] INFO - 🪟 Windows-Modus: Aktiviert
2025-06-11 10:27:45 - [startup] startup - [INFO] INFO - 🔒 Windows-sichere Log-Rotation: Aktiviert
2025-06-11 10:27:45 - [startup] startup - [INFO] INFO - ==================================================
2025-06-11 10:27:53 - [startup] startup - [INFO] INFO - ==================================================
2025-06-11 10:27:53 - [startup] startup - [INFO] INFO - [START] MYP Platform Backend wird gestartet...
2025-06-11 10:27:53 - [startup] startup - [INFO] INFO - 🐍 Python Version: 3.13.3 (tags/v3.13.3:6280bb5, Apr 8 2025, 14:47:33) [MSC v.1943 64 bit (AMD64)]
2025-06-11 10:27:53 - [startup] startup - [INFO] INFO - 💻 Betriebssystem: nt (win32)
2025-06-11 10:27:53 - [startup] startup - [INFO] INFO - 📁 Arbeitsverzeichnis: C:\Users\TTOMCZA.EMEA\Dev\Projektarbeit-MYP\backend
2025-06-11 10:27:53 - [startup] startup - [INFO] INFO - ⏰ Startzeit: 2025-06-11T10:27:53.810771
2025-06-11 10:27:53 - [startup] startup - [INFO] INFO - 🪟 Windows-Modus: Aktiviert
2025-06-11 10:27:53 - [startup] startup - [INFO] INFO - 🔒 Windows-sichere Log-Rotation: Aktiviert
2025-06-11 10:27:53 - [startup] startup - [INFO] INFO - ==================================================

View File

@ -365,3 +365,5 @@
2025-06-11 10:22:20 - [tapo_controller] tapo_controller - [INFO] INFO - ✅ tapo controller initialisiert 2025-06-11 10:22:20 - [tapo_controller] tapo_controller - [INFO] INFO - ✅ tapo controller initialisiert
2025-06-11 10:24:10 - [tapo_controller] tapo_controller - [INFO] INFO - ✅ tapo controller initialisiert 2025-06-11 10:24:10 - [tapo_controller] tapo_controller - [INFO] INFO - ✅ tapo controller initialisiert
2025-06-11 10:25:53 - [tapo_controller] tapo_controller - [INFO] INFO - ✅ tapo controller initialisiert 2025-06-11 10:25:53 - [tapo_controller] tapo_controller - [INFO] INFO - ✅ tapo controller initialisiert
2025-06-11 10:27:45 - [tapo_controller] tapo_controller - [INFO] INFO - ✅ tapo controller initialisiert
2025-06-11 10:27:53 - [tapo_controller] tapo_controller - [INFO] INFO - ✅ tapo controller initialisiert

View File

@ -114,3 +114,11 @@
2025-06-11 10:25:53 - [windows_fixes] windows_fixes - [INFO] INFO - ✅ Subprocess automatisch gepatcht für UTF-8 Encoding (run + Popen) 2025-06-11 10:25:53 - [windows_fixes] windows_fixes - [INFO] INFO - ✅ Subprocess automatisch gepatcht für UTF-8 Encoding (run + Popen)
2025-06-11 10:25:53 - [windows_fixes] windows_fixes - [INFO] INFO - ✅ Globaler subprocess-Patch angewendet 2025-06-11 10:25:53 - [windows_fixes] windows_fixes - [INFO] INFO - ✅ Globaler subprocess-Patch angewendet
2025-06-11 10:25:53 - [windows_fixes] windows_fixes - [INFO] INFO - ✅ Alle Windows-Fixes erfolgreich angewendet 2025-06-11 10:25:53 - [windows_fixes] windows_fixes - [INFO] INFO - ✅ Alle Windows-Fixes erfolgreich angewendet
2025-06-11 10:27:45 - [windows_fixes] windows_fixes - [INFO] INFO - 🔧 Wende Windows-spezifische Fixes an...
2025-06-11 10:27:45 - [windows_fixes] windows_fixes - [INFO] INFO - ✅ Subprocess automatisch gepatcht für UTF-8 Encoding (run + Popen)
2025-06-11 10:27:45 - [windows_fixes] windows_fixes - [INFO] INFO - ✅ Globaler subprocess-Patch angewendet
2025-06-11 10:27:45 - [windows_fixes] windows_fixes - [INFO] INFO - ✅ Alle Windows-Fixes erfolgreich angewendet
2025-06-11 10:27:53 - [windows_fixes] windows_fixes - [INFO] INFO - 🔧 Wende Windows-spezifische Fixes an...
2025-06-11 10:27:53 - [windows_fixes] windows_fixes - [INFO] INFO - ✅ Subprocess automatisch gepatcht für UTF-8 Encoding (run + Popen)
2025-06-11 10:27:53 - [windows_fixes] windows_fixes - [INFO] INFO - ✅ Globaler subprocess-Patch angewendet
2025-06-11 10:27:53 - [windows_fixes] windows_fixes - [INFO] INFO - ✅ Alle Windows-Fixes erfolgreich angewendet