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.