- 1 1. Vollständiger Leitfaden zur Protokollierung in Python | Vom Debugging bis zum Betrieb
- 2 2. Was ist die Protokollierung in Python? Erklärung der Grundkonzepte und der Notwendigkeit
- 3 3. Erste Schritte zur Log-Ausgabe mit dem Standard-logging-Modul von Python
- 4 4. Methode zum Ausgeben von Logs in Dateien oder der Konsole mit Python
- 5 5. Effektive Techniken für die Log-Ausgabe in Python-Projekten
- 6 6. Drei empfohlene Bibliotheken zur Verbesserung der Log-Ausgabe in Python
- 7 7. Zweifel zur Log-Ausgabe in Python lösen!
- 8 8. Beherrschen Sie die Log-Ausgabe in Python und steigern Sie die Entwicklungs effizienz
1. Vollständiger Leitfaden zur Protokollierung in Python | Vom Debugging bis zum Betrieb
Bei der Programmentwicklung mit Python ist die „Protokollierung“ zur Identifizierung von Fehlern und zur Überprüfung des Verhaltens äußerst wichtig.
In diesem Artikel erklären wir von den grundlegenden Konzepten bis zu fortgeschrittenen Techniken, damit Python-Anfänger die Protokollierung effektiv nutzen können.
2. Was ist die Protokollierung in Python? Erklärung der Grundkonzepte und der Notwendigkeit
Die Protokollierung ist ein Mechanismus, um Informationen und Fehler, die während der Ausführung des Programms auftreten, zu protokollieren. Durch die angemessene Nutzung von Logs ergeben sich folgende Vorteile.
Vorteile der Protokollierung
- Fehleranalyse wird erleichtert
Sie hilft dabei, den Ort und die Ursache des aufgetretenen Fehlers zu identifizieren. - Das Verhalten des Programms kann nachverfolgt werden
Es ermöglicht, zu verstehen, welche Teile normal funktionieren und wo Anomalien auftreten. - Überwachung im Betrieb ist möglich
Es bildet die Grundlage für die kontinuierliche Überwachung des Systemzustands in der Produktionsumgebung.
print()
Unterschiede zu
Die print()
-Funktion, die Anfänger häufig verwenden, ist für das Debugging bequem, hat jedoch bei der professionellen Entwicklung folgende Einschränkungen:
- Der Ausgabeziel kann nicht flexibel angegeben werden (z. B. Datei oder externer Service).
- Log-Level (Unterteilung nach Wichtigkeit) können nicht verwaltet werden.
Durch die Verwendung des standardmäßigen Python-logging
-Moduls können diese Herausforderungen gelöst werden.

3. Erste Schritte zur Log-Ausgabe mit dem Standard-logging
-Modul von Python
Python bietet standardmäßig das logging
-Modul, mit dem Sie Logs einfach ausgeben können. In diesem Abschnitt erklären wir die grundlegenden Verwendungen.
Übersicht über Log-Level
Im logging
-Modul können Sie für die Log-Nachrichten ein „Log-Level“ einstellen, das die Wichtigkeit angibt. Die folgenden sind die wichtigsten Log-Level:
- DEBUG: Debug-Informationen. Nützlich während der Entwicklung.
- DEBUG: Debug-Informationen. Nützlich während der Entwicklung.
- INFO: Informationsnachricht. Zeigt den Fortschritt des Programms an.
- INFO: Informationsnachricht. Zeigt den Fortschritt des Programms an.
- WARNING: Warnung. Zeigt potenzielle Probleme an.
- WARNING: Warnung. Zeigt potenzielle Probleme an.
- ERROR: Fehler. Zeigt Zustände an, in denen das Programm nicht korrekt funktioniert.
- ERROR: Fehler. Zeigt Zustände an, in denen das Programm nicht korrekt funktioniert.
- CRITICAL: Kritischer Fehler. Zeigt Systemabstürze an.
- CRITICAL: Kritischer Fehler. Zeigt Systemabstürze an.
Grundlegende Verwendung
Hier ist ein einfaches Beispiel für die Log-Ausgabe mit dem logging
-Modul.Hier ist ein einfaches Beispiel für die Log-Ausgabe mit dem logging
-Modul.
import logging
# Grundlegende Log-Einstellungen
# Grundlegende Log-Einstellungen
logging.basicConfig(level=logging.INFO, format='%(asctime)s - %(levelname)s - %(message)s')
# Beispiele für Ausgaben auf verschiedenen Log-Leveln
# Beispiele für Ausgaben auf verschiedenen Log-Leveln
logging.debug('Dies ist eine Debug-Information.')
logging.debug('Dies ist eine Debug-Information.')
logging.info('Dies ist eine Informationsnachricht.')
logging.info('Dies ist eine Informationsnachricht.')
logging.warning('Dies ist eine Warnungsnachricht.')
logging.warning('Dies ist eine Warnungsnachricht.')
logging.error('Dies ist eine Fehlermeldung.')
logging.error('Dies ist eine Fehlermeldung.')
logging.critical('Dies ist eine kritische Fehlermeldung.')
logging.critical('Dies ist eine kritische Fehlermeldung.')
Erklärung des Codes
basicConfig
: Führt die Einstellungen für die Log-Ausgabe durch. Mit demlevel
-Argument können Sie das minimale Log-Level für die Ausgabe angeben.basicConfig
: Führt die Einstellungen für die Log-Ausgabe durch. Mit demlevel
-Argument können Sie das minimale Log-Level für die Ausgabe angeben.- Formatangabe: Mit dem
format
-Argument können Sie das Format der Log-Nachrichten anpassen. - Formatangabe: Mit dem
format
-Argument können Sie das Format der Log-Nachrichten anpassen. - Beispiel:
%(asctime)s
steht für den Zeitstempel,%(levelname)s
für das Log-Level,%(message)s
für den Nachrichteninhalt. - Beispiel:
%(asctime)s
steht für den Zeitstempel,%(levelname)s
für das Log-Level,%(message)s
für den Nachrichteninhalt.
4. Methode zum Ausgeben von Logs in Dateien oder der Konsole mit Python
Logs können nicht nur auf dem Bildschirm ausgegeben werden, sondern auch in Dateien oder externen Systemen gespeichert werden. In diesem Abschnitt erklären wir, wie man verschiedene Ausgabeziel einrichtet.
Log-Ausgabe in die Konsole
logging
-Moduls Standardeinstellung werden Logs in die Konsole ausgegeben.
import logging
logging.basicConfig(level=logging.INFO)
logging.info('Beispiel für Log-Ausgabe in die Konsole')
Log-Ausgabe in eine Datei
Um Logs in eine Datei zu protokollieren, geben Sie das filename
-Argument von basicConfig
an.
import logging
logging.basicConfig(filename='app.log', level=logging.INFO, format='%(asctime)s - %(message)s')
logging.info('Dies ist ein Beispiel für Log-Ausgabe in eine Datei.')
Log-Ausgabe sowohl in Konsole als auch in Datei
Um mehrere Ausgabeziele einzurichten, verwenden Sie die Handler von logging
.
import logging
# Erstellung des Loggers
logger = logging.getLogger('my_logger')
logger.setLevel(logging.DEBUG)
# Handler für die Konsole
console_handler = logging.StreamHandler()
console_handler.setLevel(logging.DEBUG)
# Handler für die Datei
file_handler = logging.FileHandler('app.log')
file_handler.setLevel(logging.INFO)
# Formatierung der Handler einstellen
formatter = logging.Formatter('%(asctime)s - %(levelname)s - %(message)s')
console_handler.setFormatter(formatter)
file_handler.setFormatter(formatter)
# Handler zum Logger hinzufügen
logger.addHandler(console_handler)
logger.addHandler(file_handler)
logger.info('Beispiel für Log-Ausgabe in Konsole und Datei.')

5. Effektive Techniken für die Log-Ausgabe in Python-Projekten
Hier stellen wir Best Practices für die Log-Ausgabe vor, die in realen Projekten nützlich sind. Lernen Sie Techniken, um effizient zu debuggen und die Log-Verwaltung zu verbessern.
Konsistente Log-Konfiguration
In großen Projekten ist eine konsistente Log-Konfiguration wichtig. Wenn mehrere Module oder Teammitglieder zusammenarbeiten, erleichtert eine einheitliche Formatierung und Log-Level die Analyse und Fehlerbehebung.
Das folgende ist ein Beispiel für eine konsistente Log-Konfiguration.
import logging
# Gemeinsame Funktion für die Log-Konfiguration
def setup_logger(name, log_file, level=logging.INFO):
handler = logging.FileHandler(log_file)
handler.setFormatter(logging.Formatter('%(asctime)s - %(levelname)s - %(message)s'))
logger = logging.getLogger(name)
logger.setLevel(level)
logger.addHandler(handler)
return logger
# Erstellung von Loggers für jedes Modul
app_logger = setup_logger('app_logger', 'app.log')
db_logger = setup_logger('db_logger', 'db.log')
# Beispiel für Log-Ausgabe
app_logger.info('Log-Nachricht der Anwendung')
db_logger.error('Fehlermeldung der Datenbank')
Kombination von Fehlerbehandlung und Log-Ausgabe
In der Fehlerbehandlung (Ausnahmebehandlung) können Sie durch angemessene Protokollierung die Details eines Problems schnell erfassen.
Das folgende ist ein Beispiel, bei dem Logs bei Ausnahen protokolliert werden.
import logging
logging.basicConfig(filename='error.log', level=logging.ERROR, format='%(asctime)s - %(levelname)s - %(message)s')
try:
# Code-Beispiel, das einen Fehler verursacht
1 / 0
except ZeroDivisionError as e:
logging.error(f'Deine Null-durch-Null-Fehler ist aufgetreten: {e}')
Log-Nachrichten mit Kontextinformationen
Je nach Projektkontext können zusätzliche Kontextinformationen (z. B. Benutzer-ID, Transaktions-ID usw.) in Log-Nachrichten enthalten werden, um detaillierte Analysen zu ermöglichen.
import logging
logging.basicConfig(filename='context.log', level=logging.INFO, format='%(asctime)s - %(levelname)s - %(message)s')
user_id = 12345
transaction_id = 'txn_001'
logging.info(f'Benutzer-ID: {user_id}, Transaktions-ID: {transaction_id} - Die Operation war erfolgreich.')
Angemessene Filterung von Logs
Wenn große Mengen an Logs generiert werden, ist es effektiv, Filterung zu nutzen, um nur die notwendigen Logs auszugeben. Das folgende ist ein Beispiel für einen benutzerdefinierten Filter.
import logging
class DebugFilter(logging.Filter):
def filter(self, record):
return record.levelno == logging.DEBUG
logger = logging.getLogger('filtered_logger')
handler = logging.StreamHandler()
handler.addFilter(DebugFilter())
logger.addHandler(handler)
logger.setLevel(logging.DEBUG)
logger.debug('Dies ist ein Debug-Log.')
logger.info('Dies wird nicht angezeigt.')
6. Drei empfohlene Bibliotheken zur Verbesserung der Log-Ausgabe in Python
Neben dem standardmäßigenlogging
-Modul von Python gibt es auch bequeme Log-Bibliotheken. In diesem Abschnitt stellen wir drei besonders beliebte Bibliotheken vor.
Loguru: Einfache Logging-Bibliothek für Anfänger
Merkmale:
- Einfache Installation und Konfiguration.
- Intuitivere Syntax als das Standard-
logging
.
Installation:
pip install loguru
Grundlegende Verwendung:
from loguru import logger
logger.info('Dies ist eine Log-Ausgabe mit Loguru.')
logger.error('Fehlermeldungen können einfach protokolliert werden.')
Logzero: Leichte und benutzerfreundliche Logging-Bibliothek
Merkmale:
- Einfach anpassbar.
- Integrierte Log-Rotationsfunktion.
Installation:
pip install logzero
Grundlegende Verwendung:
from logzero import logger
logger.info('Log-Ausgabe mit Logzero')
logger.warning('Dies ist eine Warnmeldung.')
Structlog: Bibliothek spezialisiert auf strukturierte Logs
Merkmale:
- JSON-Logs einfach ausgeben.
- Geeignet für verteilte Systeme und Cloud-Umgebungen.
Installation:
pip install structlog
Grundlegende Verwendung:
import structlog
logger = structlog.get_logger()
logger.info('event', user='12345', action='login')

7. Zweifel zur Log-Ausgabe in Python lösen!
Q1. Was ist die Ursache, wenn keine Logs ausgegeben werden?
Antwort:
Überprüfen Sie, ob das Log-Level angemessen eingestellt ist. Standardmäßig werden möglicherweise nur Logs ab WARNING
ausgegeben.
Q2. Was tun, wenn die Log-Datei zu groß wird?
Antwort: Mit RotatingFileHandler
können Log-Dateien bei Erreichen einer bestimmten Größe rotiert werden.
Q3. Wie wählt man Drittanbieter-Bibliotheken aus?
Antwort:
Wählen Sie je nach Umfang und Anforderungen des Projekts. Für kleine Projekte eignet sich Loguru
, für strukturierte Logs Structlog
.
8. Beherrschen Sie die Log-Ausgabe in Python und steigern Sie die Entwicklungs effizienz
In diesem Artikel haben wir die Grundlagen der Log-Ausgabe in Python bis hin zu fortgeschrittenen Techniken und praktischen Drittanbieter-Bibliotheken erläutert. Durch eine angemessene Log-Ausgabe können Sie die Effizienz beim Debuggen und die Genauigkeit der Systemüberwachung erheblich verbessern. Probieren Sie es ab heute aus!