From 4672903c9b9b39a3b64cb3f56e1c5530f89890ae Mon Sep 17 00:00:00 2001 From: "Jip J. Dekker" Date: Sun, 15 Jun 2014 19:50:31 +0200 Subject: [PATCH] The logging now using the scrapy setting overrides --- fourmi.py | 4 +--- utils/configurator.py | 39 +++++++++++++++++++++++++++------------ 2 files changed, 28 insertions(+), 15 deletions(-) diff --git a/fourmi.py b/fourmi.py index ab4baef..1fd54e7 100755 --- a/fourmi.py +++ b/fourmi.py @@ -58,7 +58,7 @@ def search(docopt_arguments, source_loader): :param source_loader: An initiated SourceLoader object pointed at the directory with the sources. """ conf = Configurator() - conf.start_log(docopt_arguments["--log"], docopt_arguments["--verbose"]) + conf.start_log(docopt_arguments["--log"], docopt_arguments["-v"]) conf.set_output(docopt_arguments["--output"], docopt_arguments["--format"]) setup_crawler(docopt_arguments[""], conf.scrapy_settings, source_loader, docopt_arguments["--attributes"].split(',')) reactor.run() @@ -69,8 +69,6 @@ if __name__ == '__main__': arguments = docopt.docopt(__doc__, version='Fourmi - V0.5.0') loader = SourceLoader() - print arguments["-v"] - if arguments["--include"]: loader.include(arguments["--include"].split(',')) elif arguments["--exclude"]: diff --git a/utils/configurator.py b/utils/configurator.py index dfc6330..25a4883 100644 --- a/utils/configurator.py +++ b/utils/configurator.py @@ -1,6 +1,8 @@ +import ConfigParser + from scrapy import log from scrapy.utils.project import get_project_settings -import ConfigParser + class Configurator: """ @@ -33,20 +35,33 @@ class Configurator: def start_log(self, logfile, verbose): """ - This function starts the logging functionality of Scrapy using the settings given by the CLI. + This function changes the default settings of Scapy's logging functionality + using the settings given by the CLI. :param logfile: The location where the logfile will be saved. - :param verbose: A boolean value to switch between loglevels. + :param verbose: A integer value to switch between loglevels. """ - if logfile is not None: - if verbose: - log.start(logfile=logfile, logstdout=False, loglevel=log.DEBUG) - else: - log.start(logfile=logfile, logstdout=True, loglevel=log.WARNING) + if verbose != 0: + self.scrapy_settings.overrides["LOG_ENABLED"] = True else: - if verbose: - log.start(logstdout=False, loglevel=log.DEBUG) - else: - log.start(logstdout=True, loglevel=log.WARNING) + self.scrapy_settings.overrides["LOG_ENABLED"] = False + + if verbose == 1: + self.scrapy_settings.overrides["LOG_LEVEL"] = "WARNING" + elif verbose == 2: + self.scrapy_settings.overrides["LOG_LEVEL"] = "INFO" + else: + self.scrapy_settings.overrides["LOG_LEVEL"] = "DEBUG" + + if verbose > 1: + self.scrapy_settings.overrides["LOG_STDOUT"] = False + else: + self.scrapy_settings.overrides["LOG_STDOUT"] = True + + if logfile is not None: + self.scrapy_settings.overrides["LOG_FILE"] = logfile + else: + self.scrapy_settings.overrides["LOG_FILE"] = None + @staticmethod def read_sourceconfiguration():