2013-06-28 10 views
10

Ho problemi con i rapporti email di errore di django (1.5.1) non inviati.Non è stato inviato il messaggio di posta elettronica di errore di Django

ecco la mia impostazioni conf da utilizzare con gmail

DEFAULT_FROM_EMAIL = '[email protected]' 

EMAIL_HOST = 'smtp.gmail.com' 
EMAIL_PORT = 587 
EMAIL_HOST_USER = '[email protected]' 
EMAIL_HOST_PASSWORD = 'passs' 
EMAIL_USE_TLS = True 

SERVER_EMAIL = '[email protected]' 

ADMINS = (
    ('Adam Min', '[email protected]'), 
) 

Se aggiungo MANAGERS = ADMINS poi ricevo una mail per 404 di ma senza MANAGERS impostazione ricevo nulla.

Ho creato un URL buggy così posso verificarlo.

Inoltre ho trovato questo simile Q Django emailing on errors ma non mi ha aiutato.

EDIT: anche in config ho DEBUG = False e questo

LOGGING = { 
    'version': 1, 
    'disable_existing_loggers': True, 
    'formatters': { 
     'verbose': { 
      'format': '%(levelname)s [%(asctime)s] %(module)s %(message)s' 
     }, 
     'simple': { 
      'format': '%(levelname)s %(message)s' 
     }, 
    }, 
    'filters': { 
     'require_debug_false': { 
       '()': 'django.utils.log.RequireDebugFalse', 
     } 
    }, 
    'handlers': { 
     'console': { 
      'level': 'DEBUG', 
      'class': 'logging.StreamHandler', 
      'formatter': 'simple' 
     }, 
     'file': { 
      'class': 'logging.handlers.RotatingFileHandler', 
      'formatter': 'verbose', 
      'filename': '/var/www/logs/ibiddjango.log', 
      'maxBytes': 1024000, 
      'backupCount': 3, 
     }, 
     'sql': { 
      'class': 'logging.handlers.RotatingFileHandler', 
      'formatter': 'verbose', 
      'filename': '/var/www/logs/sql.log', 
      'maxBytes': 102400, 
      'backupCount': 3, 
     }, 
     'commands': { 
      'class': 'logging.handlers.RotatingFileHandler', 
      'formatter': 'verbose', 
      'filename': '/var/www/logs/commands.log', 
      'maxBytes': 10240, 
      'backupCount': 3, 
     }, 
     'mail_admins': { 
      'level': 'ERROR', 
      'filters': ['require_debug_false'], 
      'class': 'django.utils.log.AdminEmailHandler' 
     } 
    }, 
    'loggers': { 
     'django': { 
      'handlers': ['file', 'console'], 
      'propagate': True, 
      'level': 'DEBUG', 
     }, 
     'django.db.backends': { 
      'handlers': ['sql', 'console'], 
      'propagate': False, 
      'level': 'WARNING', 
     }, 
     'scheduling': { 
      'handlers': ['commands', 'console'], 
      'propagate': True, 
      'level': 'DEBUG', 
     }, 
    } 
} 

Che cosa mi manca?

risposta

18

sembra che il problema è nella vostra configurazione di registrazione: in settings.pyLOGGING:

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

Questa configurazione indicano che mail_admins lavoro handler solo in DEBUG = False perché il filtro utilizzato. Se si prova con la modalità di debug false o è possibile attivare questo gestore in modalità debug solo commentare i filtri:

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

Edit:

la configurazione non chiamano mail_admins gestore. Aggiungilo al logger django come questo:

'loggers': { 
    'django': { 
     'handlers': ['file', 'console', 'mail_admins',], 
     'propagate': True, 
     'level': 'DEBUG', 
    }, 
+0

Ciao, grazie per la risposta. Ho provato a commentare quella battuta ma il comportamento continua. Non vedo alcuna anomalia, il file di registro funziona perfettamente e così il resto, tranne l'e-mail nell'errore 500. (Lo ricevo ancora in 404 se aggiungo MANAGER) – dnuske

+0

Controlla il mio post edit – Mounir

+0

Ha funzionato, non puoi immagina quanto sono grato, buon karma per te =) – dnuske

Problemi correlati