我想做一些简单的printf样式调试,看看Django的models / base.py中发生了什么。
所以在我的settings.py中,我有一个'控制台'处理程序连接到' django'记录器:
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'
},
},
'filters': {
'require_debug_false': {
'()': 'django.utils.log.RequireDebugFalse'
}
},
'handlers': {
'mail_admins': {
'level': 'ERROR',
'filters': ['require_debug_false'],
'class': 'django.utils.log.AdminEmailHandler'
},
'console': {
'level': 'DEBUG',
'class': 'logging.StreamHandler',
'formatter': 'simple'
}
},
'loggers': {
'django': {
'handlers': ['console'],
'propagate': True,
'level': 'DEBUG',
},
'django.request': {
'handlers': ['mail_admins'],
'level': 'ERROR',
'propagate': True,
},
}
}
在models / base.py中我有:
def _save_table(self, raw=False, cls=None, force_insert=False,
force_update=False, using=None, update_fields=None):
"""
Does the heavy-lifting involved in saving. Updates or inserts the data
for a single table.
"""
logging.debug("IN SAVE TABLE")
但是当我跑步时
python manage.py runserver
当我看到来自django的调试输出时,我没有看到我刚刚添加的行。
我做错了什么?
答案 0 :(得分:0)
根据我的经验,我们需要声明我们使用哪个记录器,因此,以下情况应该有效:
logger = logging.getLogger('django')
logger.error('error')
logger.info('info')
logger.debug('debug')