2

当有人远程访问 Django 服务器时(例如,不是使用浏览器,而是使用机器人或其他自动化工具),我跟踪服务器正在做什么并尝试调试任何问题的“好”方式是什么?

4

1 回答 1

3

你应该做什么

调试不应该在生产服务器上进行,所以你应该使用开发服务器,在那里你基本上可以使用manage.py runserver+ import pdb; pdb.set_trace()

为什么你做不到

假设您的开发服务器在 heroku 这样的平台上运行,您可能无法控制脚本的启动方式。从那里,使用远程调试是可能的,你可以这样做:

你能做什么

如果您希望能够远程介入代码执行和调试(这对于生产设置完全rpdb不合适),您可以使用. 我坚持认为,除非您知道自己在做什么(并且前提是您不是在生产服务器上执行此操作!),否则您不应该这样做。

基本上,rpdb当您调用rpdb.set_trace(),时,pdb它的作用是启动并将其stdinstdout重定向到端口 4444(但您当然可以更改它)。然后,您将 telnet(或 netcat,就此而言)到该端口并从那里进行调试。

结束语

真的,你不应该这样做。

于 2012-05-26T17:37:31.460 回答