天天看点

Django 集成logging 日志提示:ValueError: Unable to configure handler ‘file‘

问题描述:今天使用Python3 + Django2 项目集成logging 日志记录,提示如下截图错误信息:

Django 集成logging 日志提示:ValueError: Unable to configure handler ‘file‘

 解决版本:在项目目录根路径建立一个logs文件夹来存放日志即可。

Django 集成logging 日志提示:ValueError: Unable to configure handler ‘file‘

 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‘

 备注:不推荐使用简单日志记录配置

继续阅读