[英]Django 1.4 “LOGGING” variable in settings.py seems to be ignored
我有一個我想登錄Django的模塊看起來像這樣:
import logging
logger = logging.getLogger(__name__)
def foo():
#this is a test of logging
logger.info("info foo")
logger.warning("warn foo")
logger.error("error foo")
我在settings.py中的LOGGING設置如下:
LOGGING = {
'version': 1,
'disable_existing_loggers': True,
'formatters': {
'verbose': {
'format': '%(levelname)s %(asctime)s %(module)s %(process)d %(thread)d %(message)s'
},
'simple': {
'format': '%(levelname)s %(message)s'
},
},
'handlers': {
'null': {
'level':'DEBUG',
'class':'django.utils.log.NullHandler',
},
'console':{
'level':'DEBUG',
'class':'logging.StreamHandler',
'formatter': 'simple'
},
'mail_admins': {
'level': 'ERROR',
'class': 'django.utils.log.AdminEmailHandler',
}
},
'loggers': {
'django': {
'handlers':['null', 'console'],
'propagate': True,
'level':'INFO',
},
'django.request': {
'handlers': ['mail_admins'],
'level': 'ERROR',
'propagate': False,
},
}
}
運行調用foo的視圖時的輸出如下:
WARNING:root:warn foo
ERROR:root:error foo
我也期待信息日志,但好吧,讓我們再試一次,但這次LOGGING中的每個'level'參數設置為'INFO':
WARNING:root:warn foo
ERROR:root:error foo
好的......那么將所有內容設置為“錯誤”怎么樣?:
WARNING:root:warn foo
ERROR:root:error foo
LOGGING注釋掉了嗎?
WARNING:root:warn foo
ERROR:root:error foo
我設置DEBUG = False甚至打擾手動設置
LOGGING_CONFIG = 'django.utils.log.dictConfig'
有沒有人有任何其他想法? 我不明白為什么Django忽略了我的LOGGING設置。
像往常一樣,在堆棧溢出時輸入它會讓我意識到自己的錯誤。
而不是打電話
logger = logging.getLogger(__name__)
我需要專門調用所需的記錄器:
logger = logging.getLogger('django')
這解決了這個問題。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.