我已經stubbled與此並沒有單一的「最佳」的方式來做到這一點。記住一些事情很重要。
當事情不走歪考慮到這一點,我建議您設置日誌以滿足您的需求。首先確保您的模塊的日誌記錄級別已正確設置。關於如何設置日誌記錄,請參閱我的other post。這裏是一個精簡版,以滿足您的需求
LOGGING = {
'version': 1,
'disable_existing_loggers': True,
'formatters': {
'standard': {
'format': "[%(asctime)s] %(levelname)s [%(name)s.%(funcName)s:%(lineno)d] %(message)s",
'datefmt': "%d/%b/%Y %H:%M:%S"
},
},
'handlers': {
'console': {
'level': 'DEBUG',
'()': 'logutils.colorize.ColorizingStreamHandler',
'formatter': 'standard',
'stream': sys.stdout
},
'mail_admins': {
'level': 'ERROR',
'class': 'django.utils.log.AdminEmailHandler',
'include_html': True,
},
},
'loggers': {
'django': {
'handlers': ['mail_admins'],
'propagate': True,
'level': 'ERROR',
},
'mymodule': {
'handlers': ['console', 'mail_admins'],
'propagate': True,
'level': 'DEBUG'
},
}
}
然後像這樣運行它。
./manage.py celeryd --event --beat --settings=dev
這樣做是設置兩個不同的處理程序。第一個是控制檯處理程序,它報告任何DEBUG和以上的東西。第二個是郵件處理程序,它只查看ERRORS及更高版本。接下來是從記錄儀報告的內容。所有django。*記錄器都會被報告給任何ERROR級別處理程序(mail_admins)。我們的任何模塊都可以將DEBUG和以上版本推送到這兩個版本。
我想這就是你以後的樣子。
嗨 - 這不完全是我需要的。我試圖設置的是一個配置,其中來自白名單上的記錄器的所有DEBUG調用都轉到控制檯,並且來自其他模塊(例如:庫)的所有DEBUG調用都會被忽略。因此,例如:來自名爲「mymodule」(以及所有子模塊)的記錄器的所有DEBUG調用都將被捕獲,並且任何其他DEBUG調用都將被忽略。級別高於DEBUG將不受影響。 – Taras
哦,在這種情況下,只需將名爲「'的記錄器更改爲」mymodule「。我已經更新了我的答案 – rh0dium