3 Stimmen

Python-Protokollierung über mehrere Klassen und Dateien hinweg; wie konfiguriert man sie so, dass sie leicht deaktiviert werden kann?

Derzeit habe ich in all meinen Klassen so etwas:

# Importiere das Logging-Modul, um Informationen zu protokollieren
import logging

# Richte den Logger ein
LOG_FILENAME = 'log.txt'
logging.basicConfig(filename=LOG_FILENAME, level=logging.DEBUG)

Dies funktioniert gut, und ich erhalte die gewünschte Ausgabe, aber ich würde wirklich gerne alle diese Informationen an einem Ort haben und einfach etwas wie import myLogger machen und dann mit dem Protokollieren beginnen, und hoffentlich einfach in diese Datei gehen und das Protokollieren ausschalten können, wenn ich einen zusätzlichen Leistungsschub benötige.

Vielen Dank im Voraus

3voto

Alex Martelli Punkte 805329

Um alle Protokollierung vom Stamm-Logger zu deaktivieren (was alles ist, was Sie mit basicConfig einrichten),

logging.getLogger().setLevel(logging.CRITICAL)

Wenn Sie möchten, können Sie das in eine Funktion Ihres Moduls myLogger verpacken, aber das scheint kaum lohnenswert zu sein.

3voto

unutbu Punkte 769083

Um das Einrichten des Loggings zu vereinfachen, schau dir logging.config an.

Um das Logging zu deaktivieren, könntest du den Befehl verwenden

logging.disable(logging.CRITICAL)

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X