2013-06-28 37 views
10

Tôi đã gặp khó khăn với báo cáo email báo lỗi django (1.5.1) không được gửi đi.Báo cáo email báo lỗi Django không được gửi

ở đây là thiết lập conf của tôi để sử dụng với 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]'), 
) 

Nếu tôi thêm MANAGERS = ADMINS sau đó tôi nhận được email cho 404 của nhưng không MANAGERS khung cảnh tôi nhận được gì cả.

Tôi đã tạo một url lỗi để tôi có thể kiểm tra điều này.

Ngoài ra tôi thấy điều này tương tự Q Django emailing on errors nhưng nó không giúp tôi.

EDIT: còn ở cấu hình tôi có DEBUG = False và điều này

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', 
     }, 
    } 
} 

tôi đang thiếu gì?

Trả lời

18

có vẻ như vấn đề của bạn là ở cấu hình đăng nhập của bạn: trong settings.pyLOGGING:

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

cấu hình này chỉ ra rằng mail_admins việc xử lý chỉ trong DEBUG = False vì lọc được sử dụng. Nếu bạn thử với chế độ gỡ lỗi sai hoặc bạn có thể kích hoạt xử lý này trong chế độ gỡ lỗi chỉ nhận xét các bộ lọc:

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

Edit:

cấu hình của bạn không gọi mail_admins xử lý. Thêm nó vào bộ ghi nhật ký django như thế này:

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

Xin chào, cảm ơn bạn đã trả lời. Tôi đã cố gắng bình luận dòng đó nhưng hành vi tiếp tục. Tôi không thấy bất kỳ dị thường nào, tệp nhật ký hoạt động hoàn hảo và phần còn lại, ngoại trừ email trong lỗi 500. (Tôi vẫn nhận được nó trong 404 nếu tôi thêm MANAGERS) – dnuske

+0

Kiểm tra bài chỉnh sửa của tôi – Mounir

+0

Nó hoạt động, bạn không thể hãy tưởng tượng tôi biết ơn, thiện nghiệp với bạn =) – dnuske

Các vấn đề liên quan