【发布时间】:2012-11-05 19:35:33
【问题描述】:
我正在尝试调试我的 django 应用程序,但这很难,因为我不知道我的打印语句将它们的输出发送到哪里。我将flup和fastcgi与django和nginx一起使用,我可以看到python错误并通过nginx访问日志,但我不知道我的打印语句要去哪里。
这是我的 nginx.conf 文件中的相关内容:
server {
listen 80;
server_name localhost;
access_log /var/log/nginx/demo.access.log;
error_log /var/log/nginx/demo.error.log;
location / {
include fastcgi_params;
fastcgi_pass 127.0.0.1:9001;
}
}
我正在使用这个命令运行 fastcgi:
python manage.py runfcgi host=127.0.0.1 port=9001
我基本上遵循了这个教程https://code.djangoproject.com/wiki/DjangoAndNginx,我的操作系统是ubuntu!
感谢您的帮助!
【问题讨论】:
-
您最好使用文件处理程序设置一些基本的日志记录。查看docs.python.org/2/howto/logging.html 的日志记录方法。设置起来并不麻烦,您可以关闭登录,而不是不断地检查您的代码并添加和删除打印语句。
-
是的,记录是你的朋友。
-
与问题无关,但我认为一般的理解是 fastcgi 不是在 nginx 上部署 web 应用程序的最佳方法。 Fastcgi 非常适合 Apache,但在 nginx 上,更好的方法是使用
proxy_pass,然后使用 gevent 或 gunicord 之类的东西,以便为您的 django 应用程序提供服务。 -
@miki725 FastCGI 也适用于 nginx。
-
你的打印输出到flup的终端。如果它没有(即在后台作为守护进程运行),那么它可能会转到 /dev/null。