Django 集成logging 日志提示:ValueError: Unable to configure handler ‘file‘
Posted 在奋斗的大道
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Django 集成logging 日志提示:ValueError: Unable to configure handler ‘file‘相关的知识,希望对你有一定的参考价值。
问题描述:今天使用Python3 + Django2 项目集成logging 日志记录,提示如下截图错误信息:
解决版本:在项目目录根路径建立一个logs文件夹来存放日志即可。
Python3 + Django2 +logging 简单日志配置,相关步骤总结
1、在项目settings.py 文件中,添加os 功能模块依赖和logging 日志记录配置
import os #添加os 模块依赖
...... # 省略其他配置
# logging 简单日志配置
LOGGING = {
'version': 1,
'disable_existing_loggers': False,
'handlers': {
'file': {
'level': 'DEBUG',
'class': 'logging.FileHandler',
'filename': os.path.join(BASE_DIR, 'logs/debug.log'),
},
},
'loggers': {
'django': {
'handlers': ['file'],
'level': 'DEBUG',
'propagate': True,
},
},
}
字典中的version
指明了配置的版本;disable_existing_loggers
指明是否禁止默认配置的记录器。这两项通常不需要去改动,重点看下loggers
和handlers
的配置:
- 消息首先传递给logger。Django中内置了几种记录器,比如这里用到的
Django
记录器,它会接收Django层次结构中的所有消息。然后我们定义了需要处理DEBUG
以上级别的消息,并把这些消息传递给名叫file
的处理器。'propagate': True
意思是本记录器处理过的消息其他处理器也可以继续处理。 - 现在消息来到名叫
file
的handlers
中了。这个处理器定义了消息处理级别仍然为DEBUG,在class中定义将消息输出到文件中去,文件地址为项目目录的logs/debug.log
。 - 因为这里没有配置
filters
和formatters
,因此会采用默认的设置。
需要注意的是日志的输出文件的目录logs/
一定要提前创建好,并且确保项目拥有此目录的写入权限。
简单查看日志生成消息截图:
备注:不推荐使用简单日志记录配置
以上是关于Django 集成logging 日志提示:ValueError: Unable to configure handler ‘file‘的主要内容,如果未能解决你的问题,请参考以下文章