Python Django日志记录为空

Python Django日志记录为空,python,django,python-3.x,logging,Python,Django,Python 3.x,Logging,我遇到了一个问题,在我将格式化程序添加到日志配置之后到底发生了什么?日志文件为空 日志记录={ “版本”:1, “禁用现有日志记录器”:False, “格式化程序”:{ “冗长的”:{ '格式':'{asctime}[{module}]::{message}', “样式”:“{”, }, “简单”:{ '格式':'{levelname}{message}', “样式”:“{”, }, }, “处理程序”:{ “控制台”:{ “级别”:“信息”, 'class':'logging.StreamHa

我遇到了一个问题,在我将格式化程序添加到日志配置之后到底发生了什么?日志文件为空

日志记录={ “版本”:1, “禁用现有日志记录器”:False, “格式化程序”:{ “冗长的”:{ '格式':'{asctime}[{module}]::{message}', “样式”:“{”, }, “简单”:{ '格式':'{levelname}{message}', “样式”:“{”, }, }, “处理程序”:{ “控制台”:{ “级别”:“信息”, 'class':'logging.StreamHandler', “格式化程序”:“详细” }, “file.DEBUG”:{ “级别”:“调试”, 'class':'logging.handlers.RotatingFileHandler', 'filename':'logs/debug.log', “maxBytes”:1024*1024*10, “备份计数”:10, “格式化程序”:“详细” }, 'file.INFO':{ “级别”:“信息”, 'class':'logging.handlers.RotatingFileHandler', 'filename':'logs/info.log', “maxBytes”:1024*1024*10, “格式化程序”:“详细” }, “file.ERROR”:{ “级别”:“信息”, 'class':'logging.handlers.RotatingFileHandler', 'filename':'logs/error.log', “maxBytes”:1024*1024*10, “备份计数”:10, “格式化程序”:“详细” }, }, “伐木工人”:{ “django.request”:{ 'handlers':['file.DEBUG'], “级别”:“调试”, "传播":对,, }, “django”:{ 'handlers':['file.INFO'], “级别”:“信息”, "传播":对,, }, “django”:{ 'handlers':['file.ERROR'], “级别”:“错误”, "传播":对,, }, }, } 现在,所有输出的调试文件都是空的,除了我在视图上用这段代码测试的错误文件

导入日志记录 logger=logging.getLogger'django' logger.info“测试” logger.error'tests' logger.debug'tests' logger.debug'tests' logger.error'tests' logger.info“测试” 文件上只记录了错误,为什么会发生这种情况? 我正在使用django的新版本,即2.2

更新 不知道我刚才做了什么,但它现在起作用了 这是我的新日志设置

日志记录={ “版本”:1, “禁用现有日志记录器”:False, “格式化程序”:{ “冗长的”:{ '格式':'{levelname}{asctime}[{module}]:{message}', “样式”:“{”, }, “简单”:{ '格式':'{levelname}{message}', “样式”:“{”, }, }, “处理程序”:{ “文件调试”:{ “级别”:“调试”, 'class':'logging.FileHandler', 'filename':'logs/debug.log', “格式化程序”:“详细” }, “文件错误”:{ “级别”:“错误”, 'class':'logging.FileHandler', 'filename':'logs/error.log', “格式化程序”:“详细” }, “文件信息”:{ “级别”:“信息”, 'class':'logging.FileHandler', 'filename':'logs/info.log', “格式化程序”:“详细” }, }, “伐木工人”:{ “django.server”:{ “处理程序”:[“文件调试”], “级别”:“调试”, "传播":对,, }, “django”:{ “处理程序”:[“文件错误”], “级别”:“错误”, "传播":对,, }, “django”:{ “处理程序”:[“文件信息”], “级别”:“信息”, "传播":对,, }, }, }
因为您没有配置。在您的设置中,django有两个条目,django正在基于最后一个条目写入日志。相反,您应该将配置如下:

'loggers': {
        'django.request': {
            'handlers': ['file.DEBUG'],
            'level': 'DEBUG',
            'propagate': True,
        },
        'django': {
            'handlers': ['file.INFO', 'file.ERROR'],  # <-- Here
            'level': 'INFO',
            'propagate': True,
        }
}

请参阅文档的最后一个示例。

在我添加格式化程序之前,它一直在工作,而且我希望每个日志级别都有自己的文件。但是,由于这些信息,关于django.request:Well将存储log file.DEBUG文件夹。顺便说一句,如果您觉得这个答案有帮助。
'loggers': {
        'django.request': {
            'handlers': ['file.DEBUG'],
            'level': 'DEBUG',
            'propagate': True,
        },
        'django': {
            'handlers': ['file.INFO', 'file.ERROR'],  # <-- Here
            'level': 'INFO',
            'propagate': True,
        }
}