2016-08-25 31 views
1

我試圖弄清楚爲什麼郵件不是從我從郵件工作的完美工作的應用程序複製的django應用程序發送的。我妄圖讓django在日誌中吐出與郵件相關的東西,但沒有出現。這裏是我的設置settings.py中:如何在Django日誌中查看與郵件有關的錯誤?

LOGGING = { 
    'version': 1, 
    'disable_existing_loggers': False, 
    'formatters': { 
     'verbose': { 
      'format': '%(levelname)s %(asctime)s %(module)s %(process)d %(thread)d %(message)s' 
     }, 
     'simple': { 
      'format': '%(levelname)s %(message)s' 
     }, 
    }, 
    'filters': { 
     'require_debug_false': { 
      '()': 'django.utils.log.RequireDebugFalse' 
     } 
    }, 
    'handlers': { 
     'mail_admins': { 
      'level': 'DEBUG', 
      'class': 'django.utils.log.AdminEmailHandler' 
     }, 
     'console': { 
      'level':'DEBUG', 
      'class':'logging.StreamHandler', 
      'formatter': 'simple' 
     }, 
     'file': { 
      'level': 'DEBUG', 
      'class': 'logging.FileHandler', 
      'filename': '/tmp/ooto.log', 
      'formatter': 'verbose' 
     }, 
    }, 
    'loggers': { 
     'django.request': { 
      'handlers': ['file'], 
      'level': 'DEBUG', 
      'propagate': True, 
     }, 
     'django_opensso':{ 
      'handlers' : ['file'], 
      'level' : 'DEBUG', 
     }, 
     'timekeeper':{ 
      'handlers' : ['file'], 
      'level' : 'DEBUG', 
     }, 
    } 

有人能詳細解釋或張貼的我怎麼能收郵件相關的錯誤出Django的,所以我能解決現實問題的例子嗎?

+0

從哪個應用程序發送郵件?它是'計時器'嗎?如果是這樣,在'INSTALLED_APPS'中是'timekeeper'嗎? –

+0

是的,是的。 – Matthew

+0

'計時員'代碼是否包含日誌消息? –

回答

0

django.core.mailsmtplib都沒有使用Pythons記錄模塊。 smtplib中有一個簡單的日誌記錄工具,可以寫入控制檯。你必須設置運行.set_debuglevel(level)上的連接instace,其中level爲整數> 0

應該有同樣的結果:

import smtplib 
smtplib.SMTP.debuglevel = 9 

這是所謂的猴子補丁。要小心,它很難追查。

+0

假設郵件調用被封裝在try/except中,並且日誌在except中完成,則日誌來自_his_代碼,而不是直接來自郵件模塊。 –

+0

@JohnGordon是的,這似乎是正確的。我今天要檢查那些東西,如果必須注入我自己的日誌記錄! (雖然這不是我的代碼,但我正在處理其他人的應用程序,但沒有能夠與他們交談。):D – Matthew

相關問題