diff --git a/src/main.py b/src/main.py index c1a1b31..02477e6 100644 --- a/src/main.py +++ b/src/main.py @@ -8,6 +8,41 @@ from ui.AppSettings import AppSettingsDlg from conf import app_settings +def cleanup_old_logs(log_dir, max_age_hours=24): + """ + Löscht Log-Dateien, die älter als die angegebene Anzahl von Stunden sind. + + Args: + log_dir: Pfad zum Log-Verzeichnis + max_age_hours: Maximales Alter der Log-Dateien in Stunden (Standard: 24) + """ + from datetime import datetime, timedelta + import time + + if not log_dir.exists(): + return + + cutoff_time = time.time() - (max_age_hours * 3600) + deleted_count = 0 + + # Alle .log Dateien im Verzeichnis durchsuchen + for log_file in log_dir.glob("*.log"): + try: + # Änderungszeit der Datei abrufen + file_mtime = log_file.stat().st_mtime + + # Wenn die Datei älter als die Grenzzeit ist, löschen + if file_mtime < cutoff_time: + log_file.unlink() + deleted_count += 1 + except Exception as e: + # Fehler beim Löschen ignorieren und fortfahren + print(f"Fehler beim Löschen von {log_file}: {e}") + + if deleted_count > 0: + print(f"{deleted_count} alte Log-Datei(en) gelöscht (älter als {max_age_hours} Stunden)") + + def main(): """Haupteinstiegspunkt der Anwendung.""" # Logging konfigurieren - sowohl Datei als auch Konsole @@ -19,6 +54,9 @@ def main(): log_dir = config_path.parent / "logs" log_dir.mkdir(exist_ok=True) + # Alte Log-Dateien aufräumen + cleanup_old_logs(log_dir, max_age_hours=24) + # Log-Dateiname mit Timestamp timestamp = datetime.now().strftime("%Y%m%d_%H%M%S") log_file = log_dir / f"documentor_{timestamp}.log"