【发布时间】:2015-02-17 11:54:39
【问题描述】:
我目前正在一个基于 Django 的项目中处理 Celery 任务。我们已将 raven 配置为将所有未捕获的异常和日志消息发送到 Sentry,如 documentation 中所述。
一切都很好,除了 celery 任务中未捕获的异常。例如,如果我运行这个任务:
@app.task
def test_logging():
log.error('Testing logging inside a task')
raise IndexError('Testing exception inside a task')
我只在 Sentry 中看到 log.error(...) 而不是 IndexError 未捕获的异常。
我尝试在异常周围使用try-except 块,内部带有log.exception(...),它确实有效,但我认为捕获所有此类异常是不可扩展的。
所以,问题只是未捕获的异常,在某种程度上没有正确处理。
这些是我当前的软件包版本:
celery (3.1.17)
raven (5.1.1)
Django (1.7.1)
你能帮我朝某个方向前进吗?
感谢您的宝贵时间!
【问题讨论】:
-
感谢 DRC,终于使用
register_signal(client)的解决方案奏效了,现在我们看到 Sentry 中正确记录了未捕获的异常。干杯!
标签: django exception logging celery sentry