Ich arbeite an einem Projekt, das erfordert, dass ich das Containerobjekt an jedem Punkt picken kann, da wir erwarten, dass es unter externen Bedingungen ziemlich häufig versagt und in der Lage ist, dort, wo wir aufgehört haben, stattzufinden.Kann Logger nicht beizen?
ich die Python-Logging-Bibliothek bin mit ziemlich umfangreich, und alle meine Klassen starten, indem Sie einen Logger wie der Einrichtung:
class foo:
def __init__(self):
self.logger = logging.getLogger("package.foo")
Da ich eine Container-Klasse Beizen, hat es mehrere Schichten von Klassen in ihm, jede mit ihrer eigenen Logger-Instanz.
Jetzt, aus irgendeinem Grund, brechen diese Logger Pickle. Ich erhalte den folgenden Fehler, der weggeht, wenn ich self.logger aus allen Klassen löschen:
Can't pickle 'lock' object: <thread.lock object at ... >
Also meine Frage ist, ob es eine Möglichkeit ist, die Sperrobjekte aus allen Loggern zu entfernen, ohne Ich muss meinen gesamten Objektbaum durchforsten, indem ich Logger lösche, die ich bei der Wiederherstellung neu erstellen muss.
Vielleicht könnten Sie die exakte Antwort, die Sie verwendet haben, verlinken (oder zitieren)? (Es gibt zwei) Es gibt eine Schaltfläche "Link" unter jeder Antwort, die Sie für die URL klicken können. – PriceChild