【问题标题】:set up logging to email a 403 error (CSRF error) in Django在 Django 中设置日志记录以通过电子邮件发送 403 错误(CSRF 错误)
【发布时间】:2014-06-11 02:57:44
【问题描述】:

我正在寻找一种方法来获取 403 错误以触发带有完整堆栈跟踪和请求转储的管理员错误电子邮件 - 类似于 500 错误。

具体来说,如何将它添加到我的日志记录配置中,CSRF 中间件会发出警告级别的消息。但我不想要所有 django.request 警告消息,只想要 403s ..

【问题讨论】:

标签: django


【解决方案1】:

一种可行的方法是使用自定义 403 处理程序视图,并从那里调用 mail_admins

在你的urls.py,添加

handler403 = 'myproj.myviews.error403'

myviews.py:

def error403(request):
    """
    Custom handling of 403s, to send an email to the admins
    """

    mail_admins(
        "403 alert", 
        "%s got hit in the face with Forbidden shovel" % request.user
    )
    # NB: this isn't a robust reporting message as 
    #may not be partic suited to anonymous users

    return HttpResponseForbidden()

理想情况下,您的邮件需要排队并异步发送,以防止您的用户不得不等待,但这是另一回事。

【讨论】:

  • 很好的解决方法 - 理想情况下我想将它添加到我的日志记录配置中,但如果没有,这也可以解决问题。
  • 通过适当设置日志记录,您可以在视图中引发 logger.critical() 而不是 mail_admins,这将使用记录器设置来报告它
猜你喜欢
  • 2012-07-20
  • 1970-01-01
  • 1970-01-01
  • 2013-08-22
  • 2016-11-12
  • 2021-01-27
  • 1970-01-01
  • 1970-01-01
  • 2019-05-30
相关资源
最近更新 更多