如何在Scrapy中关闭日志记录(Python)

zpf6vheq  于 2022-11-09  发布在  Python
关注(0)|答案(5)|浏览(500)

我已经用Scrapy创建了一个spider,但是我不知道如何关闭默认的日志记录。从the documentation看来,我应该可以通过执行以下操作来关闭它:

logging.basicConfig(level=logging.ERROR)

但这没有任何效果。从logging.basicConfig()的代码来看,我猜这是因为“根日志记录器配置了处理程序”,但也许我错了。无论如何,有人能解释一下我需要做些什么来让Scrapy不输出通常的

2015-10-18 17:42:00 [scrapy] INFO: Scrapy 1.0.3 started (bot: EF)
        2015-10-18 17:42:00 [scrapy] INFO: Scrapy 1.0.3 started (bot: EF)
        2015-10-18 17:42:00 [scrapy] INFO: Optional features available: ssl, http11, boto
        2015-10-18 17:42:00 [scrapy] INFO: Optional features available: ssl, http11, boto

等等?
编辑:正如下面的sirfz所建议的,

logging.getLogger('scrapy').setLevel(logging.WARNING)

可以用来设置日志记录级别。但是,您必须在spider的init方法(或以后的方法)中设置日志记录级别。

r7knjye2

r7knjye21#

您可以简单地更改scrapy(或任何其他记录器)的日志记录级别:

logging.getLogger('scrapy').setLevel(logging.WARNING)

这将禁用所有低于WARNING级别的日志消息。
要禁用所有零碎日志消息,只需将propagate设置为False

logging.getLogger('scrapy').propagate = False

这可以防止scrapy的日志消息传播到根日志程序(当使用basicConfig()配置时,根日志程序会打印到控制台)

iyr7buue

iyr7buue2#

你可以在启动脚本时添加-s LOG_ENABLED=False作为参数,这样就可以了。

:对于版本1.1,略有变更:-s LOG_ENABLED=0

pcww981p

pcww981p3#

当使用scrapy命令启动spider时,您可以简单地添加--nolog作为参数
我使用的是scrapy v1.7.3。您可以在帮助中使用以下命令查看更多信息:

scrapy --help
sqserrrh

sqserrrh4#

日志记录.basicConfig(**kwargs)
如果根记录器已经配置了处理程序,则此函数不执行任何操作。
Scrapy已为其配置了处理程序,因此此操作将不起作用

35g0bw71

35g0bw715#

这可能会有帮助,在document中提到,你可以把这个添加到设置文件中:

LOG_LEVEL = 'WARNING'

相关问题