[Quality] Logging-Infrastruktur + bare except eliminieren #25

Closed
opened 2026-05-27 12:21:06 +02:00 by ferdi2go · 1 comment
Owner

Problem

Kein logging-Modul im Projekt. Bare except: pass / except Exception: continue an mehreren Stellen:

  • analyzer.py:52,68,141,184
  • server.py:44,165-166,279-281,431 (silent ignore in Export)
  • processor.py (mehrere Stellen)

Production-Debugging unmoeglich, keine Audit-Spur fuer /login, /move, /export.

Fix

import logging
logger = logging.getLogger(__name__)

except Exception:
    logger.warning("Fehler bei %s", path, exc_info=True)
    continue

Strukturierte Logs auf stdout.

## Problem Kein `logging`-Modul im Projekt. Bare `except: pass` / `except Exception: continue` an mehreren Stellen: - `analyzer.py:52,68,141,184` - `server.py:44,165-166,279-281,431` (silent ignore in Export) - `processor.py` (mehrere Stellen) Production-Debugging unmoeglich, keine Audit-Spur fuer `/login`, `/move`, `/export`. ## Fix ```python import logging logger = logging.getLogger(__name__) except Exception: logger.warning("Fehler bei %s", path, exc_info=True) continue ``` Strukturierte Logs auf stdout.
ferdi2go added the priority: highmaintenance labels 2026-05-27 12:21:06 +02:00
Author
Owner

Fix umgesetzt:

Setup in server.py:

import logging
logging.basicConfig(level=logging.INFO, format="%(asctime)s %(levelname)s %(name)s: %(message)s")
logger = logging.getLogger("onlyframes")

Bare except ersetzt durch logger.warning(..., exc_info=True) in:

  • analyzer.py:find_exact_copies (MD5-Fehler)
  • analyzer.py:find_duplicates (pHash-Fehler bei direktem Aufruf ohne Cache)
  • analyzer.py:analyze_folder Phase-1 (Qualitaetsanalyse-Fehler)
  • analyzer.py:_analyze_with_ai (Claude-Vision-Fehler)
  • server.py:cleanup_old_uploads (OSError beim Cleanup)
  • server.py:upload_files HEIC-Decode (zusaetzlich zu skipped-Array)
  • server.py:_run_export_job Pro-Datei-Verarbeitung (zusaetzlich zu failed_paths)

logger.exception(...) bei kompletten Job-Fehlern (Analyze, Export) - mit Stack-Trace.

Bewusst nicht angefasst (wie abgestimmt): processor.py:get_exif_info und processor.py:detect_horizon_angle - dort ist das except: pass legitim, da viele Bilder regulaer kein EXIF/keine erkennbare Horizontlinie haben.

Manueller Test: korrupte JPEG in Analyze-Folder -> Analyse beendet ohne Crash, im Log erscheint WARNING analyzer: Qualitaetsanalyse fuer ... fehlgeschlagen mit Timestamp + Stack-Trace.

Fix umgesetzt: **Setup in `server.py`**: ```python import logging logging.basicConfig(level=logging.INFO, format="%(asctime)s %(levelname)s %(name)s: %(message)s") logger = logging.getLogger("onlyframes") ``` **Bare except ersetzt durch `logger.warning(..., exc_info=True)`** in: - `analyzer.py:find_exact_copies` (MD5-Fehler) - `analyzer.py:find_duplicates` (pHash-Fehler bei direktem Aufruf ohne Cache) - `analyzer.py:analyze_folder` Phase-1 (Qualitaetsanalyse-Fehler) - `analyzer.py:_analyze_with_ai` (Claude-Vision-Fehler) - `server.py:cleanup_old_uploads` (OSError beim Cleanup) - `server.py:upload_files` HEIC-Decode (zusaetzlich zu `skipped`-Array) - `server.py:_run_export_job` Pro-Datei-Verarbeitung (zusaetzlich zu `failed_paths`) **`logger.exception(...)`** bei kompletten Job-Fehlern (Analyze, Export) - mit Stack-Trace. **Bewusst nicht angefasst** (wie abgestimmt): `processor.py:get_exif_info` und `processor.py:detect_horizon_angle` - dort ist das `except: pass` legitim, da viele Bilder regulaer kein EXIF/keine erkennbare Horizontlinie haben. Manueller Test: korrupte JPEG in Analyze-Folder -> Analyse beendet ohne Crash, im Log erscheint `WARNING analyzer: Qualitaetsanalyse fuer ... fehlgeschlagen` mit Timestamp + Stack-Trace.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: ferdi2go/OnlyFrames#25