Python 为什么此日志记录配置会复制记录?

Python 为什么此日志记录配置会复制记录?,python,django,logging,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' }, 'sim

尝试记录来自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

这是因为这一部分

'': {
    'level': "ERROR",
    'handlers': ['logfile'],
},
这意味着,尽管根记录器只处理错误或更高级别的日志,但来自层次结构中较低级别的日志记录器的消息将传递给根记录器的处理程序。因此,记录到django.db记录器的消息将传递给连接到 django记录器和django记录器的根记录器父级

有关信息如何在日志系统中流动的更多信息,请参阅。

这是否符合目标?在django.db节中添加了“propagate”:False,并修复了它。