我已经意识到,我的Django应用程序中的打印语句导致wsgi错误,并失败。 没有遍历所有我的代码和删除/注释打印语句,是否有办法我可以禁用他们在运行wsgi。 它需要尽可能简单。
谢谢
使用WSGIRestrictStdout选项:
WSGIRestrictStdout Off
或用Django WSGI star脚本中的sys.stderrreplacesys.stdout:
import sys sys.stdout = sys.stderr
写入标准输出
没有声称是便携式的WSGI应用程序组件应写入标准输出。 也就是说,应用程序不应该使用Python打印语句,不要将输出指向某个备用stream。 应用程序也不应该直接写入sys.stdout。
一般来说,最好在Web应用程序中使用任何types的debugging输出进行日志logging,而不要使用打印语句。 或者以下面的forms使用它们:
print >> environ['wsgi.errors'], "message to be printed"
为了防备sys.stdout,最好把它作为sys.stderr的拷贝。
如果您在UNIX服务器上进行开发,则可以打开两个terminal窗口,一个运行Django,另一个运行terminal窗口
tail -f loggingfile
和使用print语句的效果几乎相同,但是可以使用标准logging模块来生成输出,而在生产应用程序中,只需将filter设置更改为不显示DEBUG级别的消息即可。