【问题标题】:How to trace code in a Heroku production system如何在 Heroku 生产系统中跟踪代码
【发布时间】:2021-07-28 19:52:46
【问题描述】:

我的 Python/Django 代码在 heroku 生产代码中的行为与在我的开发机器上的行为不同。

我想调试/跟踪它。

因为它在 Heroku 上运行。 AFAIK 我无法将import pydevd_pycharm; pydevd_pycharm.settrace(... 插入代码中。

我使用 PyCharm。

但我不需要花哨的 GUI。命令行工具也可以。

如果我能看到在特定 http 请求期间执行的所有行,我会很高兴。

如何为生产系统解决这个问题?

【问题讨论】:

标签: python django heroku pycharm trace


【解决方案1】:

为了了解您的本地开发环境和 Heroku 生产环境之间的区别,我会首先将应用程序部署在另一个 Heroku Dyno 上,例如 免费的 Dyno可以轻松创建和管理。
然后,您可以集成所需的工具并根据需要添加日志语句。

即使您能够调试/检查生产运行时,能够在类似生产的系统上进行测试以及早捕获问题并在不猜测的情况下调查问题也非常重要。

在 Prod 系统上,调试应用程序的选项有限:

  • 考虑代码更改(即添加日志记录),但正如您所指出的,这涉及 PR 和新版本
  • 调试器:将您喜欢的调试器(即 PyCharm)连接到远程应用程序。这是(几乎)没有人做的事情(考虑到安全方面和对应用程序性能的可能影响),我怀疑您的系统管理员/DevOps 会同意

【讨论】:

  • 我完全推荐使用相同代码的登台环境管道,只是不同的日志记录选项 (level=debug)!
【解决方案2】:

我不知道有什么工具可以做到这一点,但你不应该经常遇到这个问题。所以我不会费心去尝试解决这个问题,而是在你认为可以方便地调试这个问题的地方添加日志语句。

【讨论】:

  • 我无法将日志语句添加到在生产中运行的代码中。我可以,但需要几天时间和几次公关审查才能到达那里。
猜你喜欢
  • 2015-04-12
  • 2015-08-29
  • 1970-01-01
  • 2014-05-07
  • 2015-07-02
  • 1970-01-01
  • 2011-04-20
  • 1970-01-01
  • 2011-08-02
相关资源
最近更新 更多