2013-01-18 4 views

Antwort

12

Das Modul logging verwendet Handler, die an Logger angeschlossen sind, um zu entscheiden, wie, wo oder sogar, wenn Nachrichten letztendlich gespeichert oder angezeigt werden. Sie können logging standardmäßig so konfigurieren, dass auch in eine Datei geschrieben wird. Sie sollten wirklich die docs lesen, aber wenn Sie logging.basicConfig(filename=log_file_name) anrufen, wo log_file_name ist der Name der Datei, die Sie Nachrichten geschrieben haben (beachten Sie, dass Sie dies vor allem anderen in logging überhaupt aufrufen müssen), dann alle Nachrichten an alle protokolliert Logger (sofern später keine weitere Rekonfiguration erfolgt) werden dort beschrieben. Beachten Sie jedoch, auf welcher Ebene der Logger eingestellt ist. Wenn der Speicher info unter der Standardprotokollierungsstufe liegt, müssen Sie level=logging.INFO in die Argumente basicConfig einfügen, damit Ihre Nachricht in der Datei enden kann.

Was den anderen Teil der Frage, logging.getLogger(some_string) ein Logger Objekt zurückgibt, um die richtige Position in der Hierarchie von der Wurzel Loggers eingefügt, wobei der Name der Wert some_string sein. Wird ohne Argumente aufgerufen und gibt den Root-Logger zurück. __name__ gibt den Namen des aktuellen Moduls zurück, sodass logging.getLogger(__name__) ein Objekt Logger zurückgibt, dessen Name auf den Namen des aktuellen Moduls festgelegt ist. Dies ist ein übliches Muster, das mit logging verwendet wird, da es die Loggerstruktur dazu bringt, die Modulstruktur Ihres Codes zu spiegeln, wodurch Logging-Nachrichten beim Debuggen häufig nützlicher werden.

0

den Logfile Ort zu finden, versuchen Sie Ihr log Objekt in einem Python-Shell in Ihrer Umgebung Instanziieren und auf dem Wert der Suche:

log.handlers[0].stream

3

Um das Protokoll Position eines einfachen Datei-Logger, versuchen

logging.getLoggerClass().root.handlers[0].baseFilename 
Verwandte Themen