使用 djangos `manage.py shell` 时禁用哨兵报告

Disable Sentry reporting when using djangos `manage.py shell`

我正在使用 sentry 报告我的 django 应用程序中发生的错误。

有没有办法在使用像

这样的命令时禁用哨兵错误报告

python manage.py shell

要忽略 Sentry 中的某些或所有类型的异常,您可以使用 settings.py 文件中 RAVEN_CONFIGignore_exceptions 选项。 ignore_exceptions 接受异常列表 类 或字符串路径。 您可以在此处的 Sentry 文档中阅读有关忽略异常的更多信息:https://docs.sentry.io/clients/python/advanced/

要忽略所有异常,您可以将 ['*'] 传递给 ignore_exceptions,但您只想在 django 进程已使用上述命令启动时执行此操作,这可能是已知的来自 sys.argv。因此,您可以通过将以下代码添加到您的 django settings.py 文件来实现您想要的结果:

import sys
SHOULD_IGNORE_EXCEPTIONS = " ".join(sys.argv).endswith("run python manage.py shell")

RAVEN_CONFIG = {
    'dsn': '...',
    'ignore_exceptions': ['*'] if SHOULD_IGNORE_EXCEPTIONS else [],
}

有一个未记录但绝对稳定的设置:

RAVEN_CONFIG = {
    'install_sys_hook': False
}