2013-03-22 17 views
8

Django'da bir sitem var.Yerel Değişkenler Django Hata E-postaları İçerir

Üretim sitesinde bir hata oluştuğunda, Django otomatik olarak bir yığın izini, settings.py içindeki ADMINS listesinde listelenen e-posta adreslerine gönderir.

Bu yığın izinin, her yığın çerçevesi için yerel değişkenler içerecek şekilde olmasını istiyorum (site, hata ayıklama modundayken standart yığın izlemesi gibi).

Herhangi bir fikrin var mı?

Teşekkürler!

cevap

9

Bunu ayarlamak gerçekten çok basit. Hangi işleyicinin sizin için hata e-postası gönderiyorsa, günlüğe kaydetme yapılandırmasına 'include_html': True girin. Örneğin

(bu "include_html" satırından kenara varsayılan günlük işleyicisi olan): Bu olsun hata sayfasının içeriği ile hata e-postada bir html eki içerir

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

zaman DEBUG = Doğru. Django docs, güvenlik hakkında bir kaç detay ve bir not içeriyor.

Ayrıca, çok daha fazla şey özelleştirmeniz gerekiyorsa, django.utils.log.AdminEmailHandler ve django.views.debug.ExceptionReporter alt sınıflarını kullanan bir günlüğe kaydetme işleyicisi kurmayı da düşünebilirsiniz.

+0

Django'nun varsayılan günlüğe kaydetme yapılandırmasını almanın ve yalnızca benim settings.py öğesinde ihtiyacım olan bitleri geçersiz kılmanın bir yolu var mı? Bu işe yaramaz, ama ne demek istediğimi gösterir: 'django.conf.settings içe aktarma LOGGING LOGGING ['işleyicileri'] ['mail_admins'] ['include_html'] = Doğru ' –

+0

Anladım. It's: 'django.utils.log dosyasından DEFAULT_LOGGING içe aktarma LOGORLAMA LOGGING ['handlers'] ['mail_admins'] ['include_html'] = True' –

İlgili konular