如何根据scrapy中日志条目的来源有选择地设置log_level?

时间:2017-08-17 12:23:59

标签: python logging scrapy scrapy-spider

是否可以将[scrapy.core.engine]和[scrapy.extensions.logstats]的日志级别设为' INFO'以及我的自定义记录器,并将其他所有设置为'警告'?我想这样做是为了从我的日志文件中删除一些混乱。

提前致谢!

编辑:

我尝试按this回答:

中所述执行以下操作
DEFAULT_LOGGING = {
    'version': 1,
    'disable_existing_loggers': False,
    'root': {'level': 'WARNING'},
    'loggers': {
        'twisted': {
            'level': 'ERROR',
        },
        'scrapy.core.engine': {
            'level': 'INFO',
        },
        'scrapy.extensions.logstats': {
            'level': 'INFO',
        },
    }
}

不幸的是,由于某些原因,这不起作用。默认'警告'等级不适用于所有记录器,上述记录器的指定等级似乎没有效果......

1 个答案:

答案 0 :(得分:1)

显然scrapy使用logging。您可以使用以下内容:

import logging
for key in logging.Logger.manager.loggerDict:
    if "scrapy.core.engine" in key or "scrapy.extensions.logstat" in key:
        logging.getLogger(key).setLevel(logging.WARNING)
logging.basicConfig(level=logging.INFO)

我还没有用scrapy测试它,但是我将它用于其他包装。希望它有效。