如何在启用scrapy logger时查看print语句的输出

时间:2013-10-02 10:32:28

标签: python logging scrapy stdout stderr

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

from scrapy import log

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

输出:

PRINT OUTPUT BEFORE

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

2 个答案:

答案 0 :(得分: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

答案 1 :(得分:2)

我认为以上适用于旧版本。他们似乎已弃用scrapy.log。 参考: http://doc.scrapy.org/en/1.0/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爬行会打印所有,但scrapyd也不会这样做。