2013-03-22 65 views
8

我有一个在Django中构建的网站。在Django错误电子邮件中包含本地变量

当生产站点发生错误时,Django会自动将堆栈跟踪发送到settings.py中ADMINS列表中列出的电子邮件地址。

我想这个堆栈跟踪为每个堆栈帧包含局部变量(就像站点处于调试模式时标准堆栈跟踪一样)。

任何想法?

谢谢!

回答

9

设置它非常简单。只要将'include_html': True置于任何处理程序为您发送错误电子邮件的日志配置中。

例如(这是从“include_html”行默认的日志处理程序除外):

'handlers': { 
    'mail_admins': { 
     'level': 'ERROR', 
     'filters': ['require_debug_false',], 
     'class': 'django.utils.log.AdminEmailHandler', 
     'include_html': True 
    } 
} 

这包括与错误页面内容的错误电子邮件中的HTML附件你当DEBUG =真正。 Django docs有一些关于安全性的更多细节和注释。

如果您需要定制更多东西,您还可以查看设置日志处理程序,该处理程序使用django.utils.log.AdminEmailHandlerdjango.views.debug.ExceptionReporter的子类。

+0

有没有办法获得Django的默认日志配置,并覆盖我需要在settings.py中的位?这不起作用,但显示我的意思:'从django.conf.settings导入LOGGING LOGGING ['handlers'] ['mail_admins'] ['include_html'] = True' – 2015-04-24 11:14:45

+0

明白了。它是:'from django.utils.log import DEFAULT_LOGGING as LOGGING LOGGING ['handlers'] ['mail_admins'] ['include_html'] = True' – 2015-04-24 12:32:49

相关问题