Django调试模式下的错误报告邮件
有没有办法让Django在我把调试模式设置为开启(True)的情况下,给我发错误报告的邮件呢?
我在文档里没找到相关的信息。
补充说明:
我用的是Django 1.2,如果这有影响的话。 不,这不是一个生产环境的系统。
5 个回答
3
为了更详细地解释一下Bob Roberts的回答,我发现了在django.utils.log
里面有默认的日志配置。你只需要把它复制粘贴到你的设置里,命名为LOGGING
,然后修改其中的一行:
# settings.py:
# copied from django.utils.log import DEFAULT_LOGGING
LOGGING = {
...
'mail_admins': {
'level': 'ERROR',
# emails for all errors
#'filters': ['require_debug_false'],
'filters': [],
'class': 'django.utils.log.AdminEmailHandler'
}
...
}
6
如果你只有一个邮箱,确保在列表中加一个逗号:
ADMINS = (('Admin', 'admin@my-domain.com'),)
我试过这些,似乎有效:
LOGGING = {
'version': 1,
'disable_existing_loggers': False,
'handlers': {
'mail_admins': {
'level': 'ERROR',
'class': 'django.utils.log.AdminEmailHandler'
}
},
'loggers': {
'django.request': {
'handlers': ['mail_admins'],
'level': 'ERROR',
'propagate': True,
},
}
}
4
你可以看看 django-sentry 这个工具。它主要是为了在正式环境中使用而设计的,但它有一个 TESTING
设置,可以在 DEBUG=True
的情况下也能正常工作。这个时候它可能会发送邮件,虽然我自己没有测试过,但至少它会记录错误日志,你可以随时通过任何能上网的设备查看这些日志。
而且,当你最终进入正式环境时,这个工具会非常有用,简直是救命稻草。