Django日志记录:如何在django类中添加日志记录并在runserver中查看输出?

时间:2014-01-05 00:56:48

标签: python django logging

我想做一些简单的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的调试输出时,我没有看到我刚刚添加的行。

我做错了什么?

1 个答案:

答案 0 :(得分:0)

根据我的经验,我们需要声明我们使用哪个记录器,因此,以下情况应该有效:

logger = logging.getLogger('django')
logger.error('error')
logger.info('info')
logger.debug('debug')