Wie ändere ich die Standard-format von log-Meldungen in python app engine?
Ich würde gerne melden das Modul und classname standardmäßig in den log-Meldungen aus meinem request-Handler.
Den üblichen Weg, dies zu tun zu sein scheint, legen Sie ein benutzerdefiniertes format-string durch den Aufruf logging.basicConfig
aber dies kann nur einmal aufgerufen werden und ist bereits genannt worden, durch die Zeit, mein code läuft.
Andere Methode ist das erstellen einer neuen log - Handler
die übergeben werden kann, ein neues Protokoll Formatter
, aber das scheint nicht Recht, wie ich das vorhandene Protokoll-handler, der die App Engine installiert hat.
Was ist der richtige Weg, um zusätzliche Informationen Hinzugefügt, um alle log-Nachrichten in python App Engine, aber ansonsten nutzen Sie die vorhandenen log-format und Spüle?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Kochte ich dies durch das Lesen der
logging
Modul__init__.py
. Ich weiß nicht, ob das die richtige ist, aber es scheint zu funktionieren:root.handlers[0]
funktioniert nicht, wennbasicConfig()
wurde NICHT genannt, vor. Warum ist das so?logging.basicConfig
ist eine convenience-Funktion, welche festlegt, eine root-handler. Wenn Sie nicht definieren, Sie einen handler dannroot.handlers
ist eine leere Liste. So versuchen, Zugriff auf das erste element einer leeren Liste, z.B.root.handlers[0]
wirft einIndexError
. Wenn Sie dielogging
Modul müssen Sie entweder nennenlogging.basicConfig
oder Lesen einer Konfiguration aus einer Datei (z.B.logging.config.fileConfig
) oder einrichten der hf(N) selbst.