首页 > 解决方案 > Django:无法配置处理程序“控制台”

问题描述

我在 settings.py 文件中有一个简单的日志记录定义:

LOGGING = {
    'version': 1,
    'disable_existing_loggers': False,
    'formatters': {
        'simple': {
            'format': '[%(asctime)s] %(levelname)s %(message)s',
        },
        'verbose': {
            'format': '[%(asctime)s] %(levelname)s [%(name)s.%(funcName)s:%(lineno)d] %(message)s',
        },
    },
    'handlers': {
        'console': {
            'level': 'DEBUG',
            'class': 'logging.StreamHandler',
            'formatters': 'simple',
            'propagate': False
        }
    },
    'loggers': {
        'myapp': {
            'handlers': ['console'],
            'level': 'DEBUG'
         },
    }
}

当我运行我的程序时,我得到了错误:

ValueError: Unable to configure handler 'console'

出了什么问题?

标签: djangopython-3.x

解决方案


propagate不是处理程序的选项,而是记录器的选项。所以你的配置应该是。

'handlers': {
    'console': {
        'level': 'DEBUG',
        'class': 'logging.StreamHandler',
        'formatter': 'simple',
    }
},
'loggers': {
    'myapp': {
        'handlers': ['console'],
        'level': 'DEBUG',
        'propagate': False
     },
}

推荐阅读