2013-03-22 13 views
8

Ho un sito costruito in Django.Includere le variabili locali nelle e-mail di errore Django

Quando si verifica un errore nel sito di produzione, Django invia automaticamente una traccia di stack agli indirizzi e-mail elencati nell'elenco ADMINS in settings.py.

Vorrei che questa traccia dello stack includesse le variabili locali per ogni frame dello stack (come la traccia dello stack standard quando il sito è in modalità di debug).

Qualche idea?

Grazie!

risposta

9

È davvero semplice configurarlo. Basta inserire 'include_html': True nella configurazione di registrazione di qualsiasi gestore invii email di errore per te.

Per esempio (questo è il gestore predefinito di registrazione da parte della linea "include_html"):

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

Questo include un allegato HTML nella e-mail di errore con i contenuti della pagina di errore che si ottiene quando DEBUG = Vero. Lo Django docs ha qualche dettaglio in più e una nota sulla sicurezza.

Si potrebbe anche impostare un gestore di registrazione che utilizza sottoclassi di django.utils.log.AdminEmailHandler e django.views.debug.ExceptionReporter se è necessario personalizzare molto di più.

+0

C'è un modo per ottenere la configurazione di registrazione predefinita di Django e sovrascrivere solo i bit di cui ho bisogno nel mio settings.py? Questo non funziona, ma mostra cosa intendo: 'da django.conf.settings import LOGGING LOGGING ['handler'] ['mail_admins'] ['include_html'] = True' –

+0

Capito. È: 'from django.utils.log importa DEFAULT_LOGGING come LOGGING LOGGING ['handler'] ['mail_admins'] ['include_html'] = True' –

Problemi correlati