diff --git a/scrapy/core/engine.py b/scrapy/core/engine.py index 1fdaf476f..a26206db6 100644 --- a/scrapy/core/engine.py +++ b/scrapy/core/engine.py @@ -137,7 +137,8 @@ class ExecutionEngine(object): if request: dwld = mustbe_deferred(self.download, request, spider) dwld.chainDeferred(deferred).addBoth(lambda _: deferred) - dwld.addErrback(log.err, "Unhandled error on engine._next_request") + dwld.addErrback(log.err, "Unhandled error on engine._next_request()", + spider=spider) return dwld def spider_is_idle(self, spider): @@ -173,7 +174,7 @@ class ExecutionEngine(object): # next core refactoring. #schd.addErrback(log.err, "Error on engine.crawl()") schd.addBoth(self.scraper.enqueue_scrape, request, spider) - schd.addErrback(log.err, "Unhandled error on engine.crawl()") + schd.addErrback(log.err, "Unhandled error on engine.crawl()", spider=spider) schd.addBoth(lambda _: self.next_request(spider)) def schedule(self, request, spider): diff --git a/scrapy/core/scraper.py b/scrapy/core/scraper.py index 8a0618810..5bbd480a7 100644 --- a/scrapy/core/scraper.py +++ b/scrapy/core/scraper.py @@ -186,7 +186,8 @@ class Scraper(object): if isinstance(spider_failure.value, IgnoreRequest): return elif spider_failure is propagated_failure: - log.err(spider_failure, 'Unhandled error propagated to spider and wasn\'t handled') + log.err(spider_failure, 'Unhandled error propagated to spider', \ + spider=spider) return # stop propagating this error else: return spider_failure # exceptions raised in the spider code diff --git a/scrapy/log.py b/scrapy/log.py index c2cf4d089..71897ffee 100644 --- a/scrapy/log.py +++ b/scrapy/log.py @@ -87,7 +87,11 @@ def err(_stuff=None, _why=None, **kwargs): domain = kwargs.pop('domain', None) spider = kwargs.pop('spider', None) component = kwargs.pop('component', BOT_NAME) - kwargs['system'] = domain or spider.domain_name if spider else component + if domain is not None: + import warnings + warnings.warn("'domain' argument of scrapy.log.err() is deprecated, " \ + "use 'spider' argument instead", DeprecationWarning, stacklevel=2) + kwargs['system'] = domain or (spider.domain_name if spider else component) if _why: _why = unicode_to_str("ERROR: %s" % _why) log.err(_stuff, _why, **kwargs)