为什么此日志记录配置重复记录?

时间:2014-02-02 17:03:09

标签: python django logging

尝试从django记录SQL查询,我已经成功(在黑桃中)。每个日志记录都是重复的。如何只记录一次?

LOGGING = {
'version': 1,
'disable_existing_loggers': False,
'formatters': {
    'verbose': {
        'format': '%(levelname)s %(asctime)s %(module)s P%(process)d T%(thread)d %(message)s'
    },
    'simple': {
        'format': '%(levelname)s %(message)s'
    },
},
'loggers': {
    'django.request': {
        'handlers': ['mail-admins'],
        'level': "ERROR",
        'propagate': True,
    },
    '': {
        'level': "ERROR",
        'handlers': ['logfile'],
    },
    'django.db': {
        'handlers': ['logfile'],
        'level': "DEBUG",
    }
},

'handlers': {
    'default':{
        'level': "ERROR",
        'class':'logging.StreamHandler',
    },
    'mail-admins': {
        'level': "ERROR",
        'class': 'django.utils.log.AdminEmailHandler'
    },
   'logfile': {
        'class': 'logging.handlers.RotatingFileHandler',
        'filename': os.path.join(PROJECT_ROOT, 'logs', 'project.log'),
        'maxBytes': 1000000,
        'backupCount': 5,
        'formatter': 'verbose',
    },
}
}

日志行都是这样开始的(每行显示两次,为清晰起见,删除了其余部分):

DEBUG 2014-02-02 08:52:25,430 util P17718 T140208802572032 
DEBUG 2014-02-02 08:52:25,430 util P17718 T140208802572032 
DEBUG 2014-02-02 08:52:25,432 util P17718 T140208802572032 
DEBUG 2014-02-02 08:52:25,432 util P17718 T140208802572032 
DEBUG 2014-02-02 08:52:25,433 util P17718 T140208802572032 
DEBUG 2014-02-02 08:52:25,433 util P17718 T140208802572032 
DEBUG 2014-02-02 08:52:25,436 util P17718 T140208802572032 
DEBUG 2014-02-02 08:52:25,436 util P17718 T140208802572032 
DEBUG 2014-02-02 08:52:25,439 util P17718 T140208802572032 
DEBUG 2014-02-02 08:52:25,439 util P17718 T140208802572032

1 个答案:

答案 0 :(得分:0)

这是因为

部分
'': {
    'level': "ERROR",
    'handlers': ['logfile'],
},

这意味着虽然根记录器只处理ERROR或更高级别,但层次结构中较低级别的记录器的消息将传递给根记录器的处理程序。因此,记录到django.db记录器的消息将传递给附加到的任何处理程序 django记录器和根记录器(django记录器的父记录)。

有关信息如何在日志系统中流动的详细信息,请参阅this diagram