我刚刚将我使用Flask构建的第一个网站部署到生产服务器.我使用logging.handlers.RotatingFileHandler启用日志记录到/log/myapp.log,我可以使用它来记录消息,例如:
current_app.logger.error('this is a massive error')
这很好用.它让我对一些代码片段感到疑惑,其中包含例如我在调试时使用的print’some info here’.这些打印输出在哪里?进入void / dev / null或其他地方?有可能以某种方式抓住他们吗?
欢迎所有提示!
解决方法
使用print输出的所有内容都转到标准输出,即Unix服务器上的/ dev / stdout(默认情况下).由于apache作为服务运行,您可能永远不会看到这些输出.
>>> import sys >>> sys.stdout = open('output.logs','w') >>> print('Hello World!') # Nothing appears bellow >>> sys.stdout = sys.__stdout__ # Reset to the standard output >>> open('output.logs','r').read() 'Hello World!\n'