当有人远程访问 Django 服务器时(例如,不是使用浏览器,而是使用机器人或其他自动化工具),我跟踪服务器正在做什么并尝试调试任何问题的“好”方式是什么?
问问题
603 次
1 回答
3
你应该做什么
调试不应该在生产服务器上进行,所以你应该使用开发服务器,在那里你基本上可以使用manage.py runserver
+ import pdb; pdb.set_trace()
。
为什么你做不到
假设您的开发服务器在 heroku 这样的平台上运行,您可能无法控制脚本的启动方式。从那里,使用远程调试是可能的,你可以这样做:
你能做什么
如果您希望能够远程介入代码执行和调试(这对于生产设置完全rpdb
不合适),您可以使用. 我坚持认为,除非您知道自己在做什么(并且前提是您不是在生产服务器上执行此操作!),否则您不应该这样做。
基本上,rpdb
当您调用rpdb.set_trace()
,时,pdb
它的作用是启动并将其stdin
和stdout
重定向到端口 4444(但您当然可以更改它)。然后,您将 telnet(或 netcat,就此而言)到该端口并从那里进行调试。
结束语
真的,你不应该这样做。
于 2012-05-26T17:37:31.460 回答