使用django和nginx注销标准

使用django和nginx注销标准,django,nginx,Django,Nginx,我正在尝试调试我用django制作的应用程序,它使用django的manage.py可以正常工作,但当我使用nginx时,有些功能无法工作。我检查了错误日志,它们是空的,可能是因为我捕获了所有异常并将它们发送到standard out。有没有一种简单的方法可以通过nginx查看应用程序的输出?WSGI服务器通常会禁用stdout,我认为这可能会导致某种兼容性问题。Django有内置的日志记录;我建议用它来代替打印报表。它应该更易于配置,并且允许您在日志记录中有更多的特殊性,即: log.debu

我正在尝试调试我用django制作的应用程序,它使用django的manage.py可以正常工作,但当我使用nginx时,有些功能无法工作。我检查了错误日志,它们是空的,可能是因为我捕获了所有异常并将它们发送到standard out。有没有一种简单的方法可以通过nginx查看应用程序的输出?

WSGI服务器通常会禁用stdout,我认为这可能会导致某种兼容性问题。Django有内置的日志记录;我建议用它来代替打印报表。它应该更易于配置,并且允许您在日志记录中有更多的特殊性,即:

log.debug('仅在调试时看到')

log.warn('此消息可能表示有问题')

相关django文件:

你是如何运行django的?WSGI?您在django配置中添加了请求错误处理程序了吗?我的配置与这里列出的相同:默认情况下,只有mod_WSGI 2.X和更早版本禁用了stdout的使用。这是为了迫使人们编写可移植的WSGI应用程序。没有人在意,所以mod_wsgi 3.X允许人们编写标准输出,从而编写不可移植的wsgi应用程序。请看@GrahamDumpleton,我们这里谈论的是nginx,而不是Apache我很清楚这一点,但是“WSGI服务器经常禁用stdout”这句话只能是对Apache的mod_WSGI的引用,因为据我所知,没有其他WSGI服务器故意阻止您使用stdout。唯一真正的例外是CGI脚本,它使用标准输出与服务器通信,这就是为什么mod_wsgi停止使用标准输出的原因。也就是说,为了确保您编写的东西仍然可以使用当时存在的CGI/WSGI适配器工作。