Heute werden wir diskutieren, warum jemand einen Ersatz für den Standard- logging
Python-Logger schreiben musste und wie man dieses Ding benutzt.

Es ist krank!
Wenn Sie sich in Python logging
fällt logging
sofort ein.
logging
ist eine robuste, stabile Lösung, die eng in das Python-Ökosystem eingebettet ist. Sie importieren es bei Bedarf, nehmen einige Manipulationen vor - und das ist alles. So können Sie die begehrte logger.exception('--')
schreiben. Und der Eintrag '--'
wird in einer Art Tagebuch landen.
Danach interessieren sich Entwickler normalerweise genau dafür, woher das '--'
und was mit diesem Album passiert. Programmierer klettern in die Einstellungen des Loggers und beginnen, den Haufen verschiedener Optionen zu verwenden, um ihm beizubringen, die Datensätze korrekt in Dateien, Datenbanken, Fehlersammler und andere Orte der möglichen Speicherung von Protokolldatensätzen zu verschieben.
Es werden Konfigurationen für den Logger angezeigt, die mit einem umständlichen, aber mehr oder weniger verständlichen Inhalt beginnen:
LOGGER_CONFIG = { "version": 1, "disable_existing_loggers": False, "formatters": { "simple": { "format": "%(asctime)s - %(name)s - %(levelname)s - %(message)s" } }, "handlers": { "console": { "class": "logging.StreamHandler", "level": "DEBUG", "formatter": "simple", "stream": "ext://sys.stdout" }, }, "root": { "level": "INFO", "handlers": ["console"] } }
Solche Konfigurationen entwickeln sich schnell zu etwas viel Unverdaulicherem. Eine normalerweise konfigurierte Konfiguration für die logging
mit unterschiedlichen Protokollierungsstufen, unterschiedlichen Nachrichtensammlern und der Rotation von Protokolldateien ist ein umfangreicher Text, der bereits sehr schwer zu verarbeiten ist.
Nicht zu verletzen und sogar angenehm
Einmal hatten es einige Programmierer satt, in den zahlreichen Konfigurationsoptionen für die logging
graben (und Fehler zu machen). Diese Ingenieure haben ihren eigenen Logger geschrieben, der extrem einfach und gleichzeitig sehr leistungsfähig ist. Dieses Ding heißt Loguru .
Und hier ist eine Demo dieser Bibliothek, die ausführlich zeigt, wie es möglich ist, die Protokollierung in Ihrer leistungsstarken Anwendung in wenigen Zeilen einzurichten.

Warum sollten Sie loguru
als Alternative zur logging
Betracht loguru
?
- Einfachheit.
loguru
ich bereits oben gesagt, aber ich werde es noch einmal sagen - die korrekte Konfiguration von loguru
einfacher als die logging
. - Klare Möglichkeiten zum Konfigurieren der Rotation von Protokolldateien und zum Archivieren alter Datensätze.
- In der Verpackung sind bereits viele Batterien enthalten - Nachrichtenfarben, Formatierung, Senden von Fehlerbenachrichtigungen per E-Mail, Funktionsaufrufstapel sowie Absturzberichte und viele andere nützliche Annehmlichkeiten.
- Und natürlich Asynchronität! Ja, die Welt von Python geht immer weiter in Richtung Async / Warten, und diese tektonische Verschiebung aller leistungshungrigen Programme erfordert eindeutig asynchrone Logger.
Natürlich muss man für alles bezahlen. Und für die Verwendung von loguru
zwei Dinge bezahlen:
- Lieba ist relativ jung und es kann Überraschungen geben.
- Die Autoren versprechen volle Kompatibilität mit der
logging
, aber es kann durchaus zu Problemen bei der Verbindung von loguru
mit Bibliotheken von Drittanbietern für die logging
. Zum Beispiel beim Anbringen von Handlern für Sentry oder Airbrake.
Trotz dieser potenziellen Schwierigkeiten lohnt es sich, loguru
bereits in Ihrem nächsten Projekt sorgfältig zu testen und zu loguru
.