2014-04-25 55 views
2

我正在尋找一種獲取403錯誤的方法,以便通過完整的堆棧跟蹤和請求轉儲觸發管理員錯誤電子郵件 - 類似於500錯誤。在Django中設置日誌以電子郵件發送403錯誤(CSRF錯誤)

具體如何將它添加到我的日誌記錄配置CSRF中間件發出警告級別消息。但我不希望所有django.request警告消息,只有403S ..

將工作
+0

你看了這頁嗎? https://docs.djangoproject.com/en/dev/howto/error-reporting/ –

+0

https://docs.djangoproject.com/zh/dev/topics/logging/更有用,但仍然不那麼清楚 –

回答

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() 

理想情況下,你的郵件需要進行排隊和發送異步到PR事件你的用戶不得不等待,但這是一個單獨的事情。

+0

不錯解決辦法 - 理想情況下,我想將其添加到我的日誌記錄配置中,但如果不是這樣,這也可以解決問題。 –

+0

通過適當設置的日誌記錄,您可以在視圖中提高logger.critical()而不是mail_admins,並且這將使記錄器設置報告它 –

+0

好點謝謝 –