Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
调试mod#wsgi上的Django代码(如何访问[';wsgi.errors';]))_Django_Apache_Debugging_Web Applications_Mod Wsgi - Fatal编程技术网

调试mod#wsgi上的Django代码(如何访问[';wsgi.errors';]))

调试mod#wsgi上的Django代码(如何访问[';wsgi.errors';])),django,apache,debugging,web-applications,mod-wsgi,Django,Apache,Debugging,Web Applications,Mod Wsgi,我开始在服务器上开发Django代码,运行在Apache/mod_wsgi之上 我希望了解一些事情: 通常使用什么技术来解决问题 调试服务器上运行的应用程序 服务器 具体来说,我只是想用 现在进行“打印”调试。但我 似乎无法获取打印语句 工作。我正在打印到stderr,但是 我不确定应该使用哪个日志文件 正在看。根据 ,我应该用 environ['wsgi.errors'],但是怎么做呢 我可以通过Django代码访问它吗 谢谢 编辑:顺便说一句,添加行print>>sys.stderr,“

我开始在服务器上开发Django代码,运行在Apache/mod_wsgi之上

我希望了解一些事情:

  • 通常使用什么技术来解决问题 调试服务器上运行的应用程序 服务器

  • 具体来说,我只是想用 现在进行“打印”调试。但我 似乎无法获取打印语句 工作。我正在打印到stderr,但是 我不确定应该使用哪个日志文件 正在看。根据 ,我应该用
    environ['wsgi.errors']
    ,但是怎么做呢 我可以通过Django代码访问它吗

  • 谢谢

    编辑:顺便说一句,添加行
    print>>sys.stderr,“message…”
    不仅不会打印到任何日志文件,还会导致我的部分应用程序无法加载

  • 尝试使用。当您无法实际使用调试器时,它可以帮助您进行大量调试

    实际上,调试应该在开发机器上完成。我还没有看到django在生产中出现的代码问题,这在我的开发环境中是不存在的

  • 您通常无法在mod_wsgi中打印。改用模块。这正是您想要的,调试工具栏将在页面中显示日志语句,因此您甚至不必查看文件


  • 我正在尝试使用日志模块。我在我的views.py顶部添加了“简单示例”的第一行,但是我得到了一个“权限被拒绝”的IOError(我正在尝试登录到我的主目录)。我需要做些什么来授予权限吗?我发现了问题-运行Apache的用户不是我登录的用户,因此主目录是禁止访问的。我使用
    chmod a+w logs
    为每个人授予了日志目录的权限。关于如何使用Django设置日志记录问题,您有什么建议吗?我有一种感觉,仅仅将代码添加到我的
    view.py
    顶部并不是一个好主意。在任何mod_wsgi版本上,您都可以使用“print>>sys.stderr,'message…”。使用最新的mod_wsgi,您可以非常愉快地使用“print”,而无需将其指向stderr。它被mod_wsgi屏蔽了是的,我已经看到了那篇文章,但正如我上面解释的,普通的“print”和“print>>sys.stderr”似乎都不起作用。使用request.META和日志一样有效,所以我想我还是坚持使用它。无论如何谢谢你的帮助!然后,您的环境/配置在某些人身上被破坏,因为他们应该工作。建议您使用WSGI hello world脚本对其进行测试,并保留任何框架或您自己的应用程序代码,以确保它们不是问题的原因。只需这样做:
    request.META['wsgi.errors'].write(“ello-world”)
    。使用显示的“print”,直接指向stderr应该可以。它指向哪个Apache错误日志文件取决于您是使用嵌入式模式还是守护程序模式,以及您是否在VirtualHost内部使用ErrorLog指令。如果它没有出现在日志中,那么您对WSGI脚本文件中的sys.stdout/sys.stderr做了什么处理(如果有的话)。Use还可以使用“print>>request.META['WSGI.errors'],'hello world'”。@Graham Dumpleton:我在VirtualHost中设置了一个自定义日志目录,但错误没有得到输出,既不指向log dir,也不指向/var/log/apache dir,后者是AFAIK的主日志目录。但这并不是奇怪的部分,奇怪的部分是当我使用print>>sys.stderr时,我的应用程序似乎无法工作。我假设,即使我的日志文件不能正常工作,应用程序的其余部分也可以正常工作。建议您进入mod_wsgi邮件列表,因为这里不是调试问题的地方。