📚 Improved logging structure & efficiency 🖼️
This commit is contained in:
Binary file not shown.
107
backend/app.py
107
backend/app.py
@ -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
|
||||||
|
@ -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
|
||||||
|
@ -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
|
||||||
|
@ -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
|
||||||
|
@ -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
|
||||||
|
@ -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
|
||||||
|
@ -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 - ==================================================
|
||||||
|
@ -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
|
||||||
|
@ -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
|
||||||
|
Reference in New Issue
Block a user