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



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

提前感谢!

编辑:

我尝试按照此答案中的说明执行以下操作:

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',
},
}
}

不幸的是,由于某种原因,这不起作用。默认的"警告"级别不会应用于所有记录器,并且上述记录器的指定级别似乎不起作用......

显然 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测试过它,但我将其用于其他软件包。希望它有效。

最新更新