Merge pull request #1259 from chekunkov/log-counter-handler-is-never-removed

[MRG +1] LogCounterHandler is never removed from root handlers list, fix that
This commit is contained in:
Julia Medina 2015-05-27 11:42:19 -03:00
commit 62a6eff218
1 changed files with 4 additions and 2 deletions

View File

@ -35,8 +35,10 @@ class Crawler(object):
handler = LogCounterHandler(self, level=settings.get('LOG_LEVEL'))
logging.root.addHandler(handler)
self.signals.connect(lambda: logging.root.removeHandler(handler),
signals.engine_stopped)
# lambda is assigned to Crawler attribute because this way it is not
# garbage collected after leaving __init__ scope
self.__remove_handler = lambda: logging.root.removeHandler(handler)
self.signals.connect(self.__remove_handler, signals.engine_stopped)
lf_cls = load_object(self.settings['LOG_FORMATTER'])
self.logformatter = lf_cls.from_crawler(self)