获得Scrapy记录器

时间:2016-02-02 11:07:26

标签: python logging scrapy

我使用CrawlerProcess类使用Monkey.Robotics从脚本运行Scrapy。根据文档,Scrapy可以在以这种方式运行蜘蛛时使用Core API函数配置日志记录。那么我如何获得Scrapy记录器(所以我能够添加处理程序和过滤器?)。看起来Scrapy在使用配置文件时使用了根记录器,是否可以将其重定向到此用例的单独记录器?

1 个答案:

答案 0 :(得分:3)

您无需为此目的获取记录器。只需将设置dict传递给scrapy.utils.log.dictConfig即可。见https://docs.python.org/2/library/logging.config.html#logging.config.dictConfig。您可以使用scrapy.utils.log.DEFAULT_LOGGING作为参考:

DEFAULT_LOGGING = {
    'version': 1,
    'disable_existing_loggers': False,
    'loggers': {
        'scrapy': {
            'level': 'DEBUG',
        },
        'twisted': {
            'level': 'ERROR',
        },
    }
}

例如,

from scrapy.utils import log

process = CrawlerProcess({
    'USER_AGENT': 'Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1)',
})
log.dictConfig({
    'version': 1,
    'disable_existing_loggers': True,
    'loggers': {
        'scrapy': {
            'level': 'ERROR',
        }
    }
})

此外,如果您只想减少详细程度,请查看LOG_LEVEL Scrapy设置。