繁体   English   中英

发送Django调试页面毫无例外

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM