我的Django网络应用程序通过乌鸦将例外记录到Sentry。我还运行了许多脚本(通过manage.py runscript
)作为cron作业。目前,这些脚本中的任何异常都没有报告给Sentry。如何设置此类报告?
答案 0 :(得分:1)
从raven-python的5.3.1版开始,它应该正确修补Django的BaseCommand.execute,它可以有效地处理这些命令中的错误(除非永远不会进行父调用)。
答案 1 :(得分:0)
对于那些那些:
还有一个raven没有正确修补django管理命令的问题
让Django == 1.6.11
我找到了一个适合我的修复程序。
问题似乎是,当Django调用它时,raven不会修补BaseCommand.execute
。所以要解决这个问题,我确保BaseCommand.execute
立即修补。我已将manage.py
文件更新为包含以下行:
from raven.contrib.django.management import patch_cli_runner
patch_cli_runner()
我的最终manage.py
文件如下所示:
#!/usr/bin/env python
from os.path import abspath
from os.path import dirname
import os
import sys
if __name__ == "__main__":
# add the ../ directory to the os path, so that we can find
# app.settings below
sys.path.insert(0, os.path.abspath(os.path.join(dirname(abspath(__file__)), '..')))
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "app.settings")
from django.core.management import execute_from_command_line
from raven.contrib.django.management import patch_cli_runner
patch_cli_runner()
execute_from_command_line(sys.argv)