6

出于调试目的,在使用 Scrapy 时,我需要查看日志消息的输出和打印语句。但是,当我启动 Scrapy 记录器时,我不再看到打印语句的输出!我应该如何修改以下示例代码以查看两个打印语句?

from scrapy import log

print 'PRINT OUTPUT BEFORE'
log.start(loglevel='DEBUG',logstdout=True)
print 'PRINT OUTPUT AFTER'

输出:

PRINT OUTPUT BEFORE

我相信重定向 stderr 或 stdout 可以解决问题。任何帮助将不胜感激!

4

2 回答 2

6

logstdout必须设置为 False 以禁用 stdout 被重定向。

from scrapy import log

print 'PRINT OUTPUT BEFORE'
log.start(loglevel='DEBUG', logstdout=False)
print 'PRINT OUTPUT AFTER'

带输出:

PRINT OUTPUT BEFORE
PRINT OUTPUT AFTER
于 2013-10-02T11:39:04.263 回答
3

我认为以上适用于旧版本。他们似乎已经弃用了 scrapy.log 。参考: https ://docs.scrapy.org/en/latest/topics/logging.html

例如:

import logging

logging.warning("This is a warning")
logging.info("This is an info")
logging.error("This is an error")

因为我的配置设置为警告。我只有在下面

WARNING:root:This is a warning
ERROR:root:This is an error

请注意,如果您使用的是 scrapyd,这将很有帮助。由于scrapy crawl 会打印所有内容,但scrapyd 不会以同样的方式打印。

于 2015-09-23T13:58:30.650 回答