From d49d509451be8a8141ac0b8a89c32bb478742d9f Mon Sep 17 00:00:00 2001 From: Lars Date: Thu, 1 Jan 2026 08:09:20 +0100 Subject: [PATCH] Initialize logging setup in main application prior to app creation for improved error tracking and management. --- app/core/logging_setup.py | 37 +++++++++++++++++++++++++++++++++++++ app/main.py | 5 +++++ 2 files changed, 42 insertions(+) create mode 100644 app/core/logging_setup.py diff --git a/app/core/logging_setup.py b/app/core/logging_setup.py new file mode 100644 index 0000000..f2f4db9 --- /dev/null +++ b/app/core/logging_setup.py @@ -0,0 +1,37 @@ +import logging +import os +from logging.handlers import RotatingFileHandler + +def setup_logging(): + # 1. Log-Verzeichnis erstellen (falls nicht vorhanden) + log_dir = "logs" + if not os.path.exists(log_dir): + os.makedirs(log_dir) + + log_file = os.path.join(log_dir, "mindnet.log") + + # 2. Formatter definieren (Zeitstempel | Level | Modul | Nachricht) + formatter = logging.Formatter( + '%(asctime)s | %(levelname)-8s | %(name)s | %(message)s', + datefmt='%Y-%m-%d %H:%M:%S' + ) + + # 3. File Handler: Schreibt in Datei (max. 5MB pro Datei, behält 5 Backups) + file_handler = RotatingFileHandler( + log_file, maxBytes=5*1024*1024, backupCount=5, encoding='utf-8' + ) + file_handler.setFormatter(formatter) + file_handler.setLevel(logging.INFO) + + # 4. Stream Handler: Schreibt weiterhin auf die Konsole + console_handler = logging.StreamHandler() + console_handler.setFormatter(formatter) + console_handler.setLevel(logging.INFO) + + # 5. Root Logger konfigurieren + logging.basicConfig( + level=logging.INFO, + handlers=[file_handler, console_handler] + ) + + logging.info(f"📝 Logging initialized. Writing to {log_file}") \ No newline at end of file diff --git a/app/main.py b/app/main.py index c5876d0..546ebfb 100644 --- a/app/main.py +++ b/app/main.py @@ -30,6 +30,11 @@ try: except Exception: admin_router = None +from .core.logging_setup import setup_logging + +# Initialisierung noch VOR create_app() +setup_logging() + logger = logging.getLogger(__name__) # --- WP-25: Lifespan Management ---