mirror of https://github.com/scrapy/scrapy.git
Log overriden Scrapy settings when Scrapy starts.
This is useful for debugging, to quickly find out which settings where used for a specific spider run. dict settings are omitted for brevity. DEBUG level is used for consistency with "Enabled extensions/middlewares" lines (which share a similar purpose).
This commit is contained in:
parent
8f3a509d44
commit
d5d944fa44
|
|
@ -8,6 +8,7 @@ from scrapy.extension import ExtensionManager
|
|||
from scrapy.signalmanager import SignalManager
|
||||
from scrapy.utils.ossignal import install_shutdown_handlers, signal_names
|
||||
from scrapy.utils.misc import load_object
|
||||
from scrapy.settings import overridden_settings
|
||||
from scrapy import log, signals
|
||||
|
||||
|
||||
|
|
@ -33,6 +34,8 @@ class Crawler(object):
|
|||
if self.configured:
|
||||
return
|
||||
self.configured = True
|
||||
d = dict(overridden_settings(self.settings))
|
||||
log.msg(format="Overridden settings: %(settings)r", settings=d, level=log.DEBUG)
|
||||
lf_cls = load_object(self.settings['LOG_FORMATTER'])
|
||||
self.logformatter = lf_cls.from_crawler(self)
|
||||
self.extensions = ExtensionManager.from_crawler(self)
|
||||
|
|
|
|||
|
|
@ -57,3 +57,17 @@ class CrawlerSettings(Settings):
|
|||
|
||||
def __str__(self):
|
||||
return "<CrawlerSettings module=%r>" % self.settings_module
|
||||
|
||||
|
||||
def iter_default_settings():
|
||||
"""Return the default settings as an iterator of (name, value) tuples"""
|
||||
for name in dir(default_settings):
|
||||
if name.isupper():
|
||||
yield name, getattr(default_settings, name)
|
||||
|
||||
def overridden_settings(settings):
|
||||
"""Return a dict of the settings that have been overridden"""
|
||||
for name, defvalue in iter_default_settings():
|
||||
value = settings[name]
|
||||
if not isinstance(defvalue, dict) and value != defvalue:
|
||||
yield name, value
|
||||
|
|
|
|||
Loading…
Reference in New Issue