【问题标题】:How to see output of print statements when scrapy logger enabled启用scrapy logger时如何查看打印语句的输出
【发布时间】:2013-10-08 17:14:45
【问题描述】:

出于调试目的,在使用 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 可以解决问题。任何帮助将不胜感激!

【问题讨论】:

    标签: python logging scrapy stdout stderr


    【解决方案1】:

    我认为以上适用于旧版本。他们似乎已经弃用了 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 的打印方式不同。

    【讨论】:

      【解决方案2】:

      logstdout 必须设置为 False 以禁止重定向标准输出。

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

      有输出:

      PRINT OUTPUT BEFORE
      PRINT OUTPUT AFTER
      

      【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-09-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-09-03
      • 1970-01-01
      相关资源
      最近更新 更多