2013-03-22 8 views
8

Mam witrynę zbudowaną w Django.Łącznie z lokalnymi zmiennymi w komunikatach o błędach Django

Gdy wystąpi błąd w miejscu produkcji, Django automatycznie wysyła ślad stosu do adresów e-mail podanych na liście ADMINS w pliku settings.py.

Chciałbym, aby ten ślad stosu zawierał zmienne lokalne dla każdej ramki stosu (podobnie jak w przypadku śledzenia stosu standardowego, gdy witryna jest w trybie debugowania).

Wszelkie pomysły?

Dzięki!

Odpowiedz

9

Naprawdę łatwo jest ustawić. Wystarczy, że podłączysz 'include_html': True do konfiguracji rejestrowania dowolnego programu obsługującego wysyłanie wiadomości e-mail z błędami.

Na przykład (jest to procedura obsługi domyślne rejestrowanie oprócz linii „include_html”):

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

ten zawiera załącznik HTML w mailu błędu z treścią strony błędu można dostać kiedy DEBUG = Prawdziwe. Django docs ma kilka dodatkowych szczegółów i uwagi na temat bezpieczeństwa.

Można również spojrzeć na konfigurowanie procedury obsługi dzienników, która używa podklas o numerach django.utils.log.AdminEmailHandler i django.views.debug.ExceptionReporter, jeśli potrzebujesz dużo więcej dostosować.

+0

Czy istnieje sposób na uzyskanie domyślnej konfiguracji rejestrowania Django i zastąpienie bitu, którego potrzebuję w moim settings.py? To nie działa, ale pokazuje co mam na myśli: 'od importu django.conf.settings LOGOWANIE LOGOWANIE ['handlers'] ['mail_admins'] ['include_html'] = True' –

+0

Rozumiem. To: 'od django.utils.log zaimportuj DEFAULT_LOGGING jako LOGGING LOGOWANIE ['handlers'] ['mail_admins'] ['include_html'] = True' –

Powiązane problemy