
[英]Django3, custom 404 page redirects to 500 when Debug=False because Django cannot find exception parameter
[英]Sending Django debug page without exception
当我的生产Django网站有一个例外时,Django自动通过电子邮件向我发送调试页面,包括非常详细的堆栈跟踪。 这对于调试非常有用。
但在某些情况下,即使没有异常,我也希望Django向我发送有用的堆栈跟踪。 (例如,如果用户正在做一个可疑的事情,或者有一个例外我正在沉默,但我想调查。)我想有一行代码,我可以放在我的Django逻辑中的任何地方,这将导致Django以通常的格式通过电子邮件发送堆栈跟踪。
我怎样才能做到这一点?
Django有一个可自定义的日志记录系统,您可以创建自己的记录器配置。 在这种特殊情况下,您将使用配置为使用mail_admins处理程序的记录器。 我会指出你所有细节的文档 。
要包含堆栈跟踪,您将使用logger.exception(),这是一个示例:
views.py
import logging
logger = logging.getLogger(__name__)
def trigger_500(request):
try:
10/0
except Exception, exc:
logging.exception(exc)
settings.py
'loggers': {
'an_app.views': {
'handlers': ['mail_admins', 'console'],
'propagate': True,
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.