Search code examples
pythonloggingscrapystdoutstderr

How to see output of print statements when scrapy logger enabled


For debug purposes I need to see both output of log messages and print statements when working with Scrapy. Hovewer, when I start Scrapy logger, I no longer see output of print statements! How should I modify the following sample code to see both print statements?

from scrapy import log

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

Output:

PRINT OUTPUT BEFORE

I beleive redirecting stderr or stdout may solve the problem. Any help would be greatly appreciated!


Solution

  • logstdout must be set to False to disable stdout from being redirected.

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

    With output:

    PRINT OUTPUT BEFORE
    PRINT OUTPUT AFTER