kra*_*r65 7 python apache logging flask
我刚刚将我使用Flask构建的第一个网站部署到生产服务器.我使用logging.handlers.RotatingFileHandler
to 启用日志记录/log/myapp.log
,我可以使用它来记录消息,例如:
current_app.logger.error('this is a massive error')
Run Code Online (Sandbox Code Playgroud)
这很好用.它让我对一些代码片段感到疑惑,其中包含print 'some info here'
我在调试时使用的代码.这些打印输出在哪里?进入虚空/dev/null
或其他地方?有可能以某种方式抓住他们吗?
欢迎所有提示!
您输出的所有内容print
都会转到标准输出,即/dev/stdout
在Unix服务器上(默认情况下).由于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'
Run Code Online (Sandbox Code Playgroud)