Logging und Debugging in Python- Fehler effizient finden und beheben
Logging und Debugging in Python: Fehler effizient finden und beheben
Ein praxisnaher Leitfaden zur Fehlersuche, Protokollierung und Analyse von Python-Programmen
Inhaltsverzeichnis
Kapitel 1: Warum Fehler auftreten – und wie man sie erkennt
- Arten von Fehlern: Syntax-, Laufzeit- und Logikfehler
- Klassische Beispiele: NameError, TypeError, IndexError
- Wie Python mit Ausnahmen umgeht
- Ziel: systematisch statt panisch debuggen
Kapitel 2: Einfache Fehlersuche mit print() – und ihre Grenzen
- Print-Debugging: Vor- und Nachteile
- Positionierung von print() im Code
- Typische Stolpersteine
- Warum Logging meist besser ist
Kapitel 3: Einstieg in das logging-Modul
- Unterschiede zu print()
- Log-Level: DEBUG, INFO, WARNING, ERROR, CRITICAL
- Einfache Logs in Konsole schreiben
- Mini-Projekt: Rechner mit Log-Ausgabe bei Fehlern
Kapitel 4: Logging professionell einsetzen
- Log-Nachrichten formatieren
- Logs in Datei schreiben
- Zeitstempel und Log-Quellen hinzufügen
- Mini-Projekt: Protokollierte Dateioperation
Kapitel 5: Logging in größeren Projekten strukturieren
- Mehrere Module: __name__ und Logger pro Datei
- Konfigurationsmöglichkeiten mit basicConfig() und dictConfig
- Logging für Bibliotheken und externe Module
- Mini-Projekt: Anwendung mit modulares Logging-Setup
Kapitel 6: Fehler finden mit dem Debugger
- Einführung in pdb – der interaktive Debugger
- Breakpoints setzen, Variablen inspizieren, Zeilenweise vorgehen
- Alternativen: Debugging in VS Code, PyCharm
- Mini-Projekt: Schrittweise Fehleranalyse in einem Rechenmodul
Kapitel 7: Exceptions gezielt abfangen und analysieren
- Verwendung von try, except, else, finally
- Fehlerprotokollierung mit logging.exception()
- Stacktraces richtig lesen
- Mini-Projekt: Sicheres Öffnen von Dateien mit Fehlerprotokoll
Kapitel 8: Tipps zur Fehlervermeidung im Vorfeld
- Sauberer Code: Lesbarkeit, Struktur, Wiederverwendbarkeit
- Defensive Programmierung
- Gültigkeitsprüfungen und assert
- Beispiel: Validierung von Benutzereingaben
Kapitel 9: Tools zur Fehlersuche und Codeanalyse
- traceback, warnings, tracemalloc, faulthandler
- Einsatz in Entwicklung und Produktion
- Mini-Projekt: Speicherprobleme erkennen mit tracemalloc
Kapitel 10: Logging und Debugging in produktiven Umgebungen
- Unterschiede: Entwicklung vs. Produktion
- Datenschutz und sensible Daten im Log
- Logging in Webanwendungen (z. B. Flask)
- Empfehlungen für logbasierte Überwachung
Anhang A: Übersicht über logging-Funktionen und -Level
- Methoden und Parameter: basicConfig(), getLogger(), debug(), etc.
- Wann welches Level nutzen?
Anhang B: Python-Fehlermeldungen und ihre Bedeutung
- Tabelle häufiger Fehler mit Erklärung und Lösungsvorschlag
- Klassische Anfängerfehler erkennen und vermeiden
Anhang C: Übungsaufgaben mit Lösungen
- Logging in Datei und Konsole
- Debugging eines fehlerhaften Programms
- Fehlerhafte Benutzereingaben behandeln
- Musterlösungen mit Kommentaren