尽管进行了配置,但忽略了Django信息和调试日志

时间:2019-05-21 19:11:11

标签: python django logging

所以我试图在Django程序中设置日志记录。我在settings.py中设置了日志记录配置:

    DEBUG = True
    LOGGING_CONFIG = None
    LOGGING = {
        'version': 1,
        'disable_existing_loggers': False,
        'formatters': {
            'custom': {
                'format': '%(asctime)s %(levelname)-8s %(name)-15s %(message)s'
            }
        },
        'handlers': {
            'console': {
                'level': 'NOTSET',
                'class': 'logging.StreamHandler',
                'formatter': 'custom'
            }
        },
        'loggers': {
            '': {
                'handlers': ['console'],
            }
        }
    }
    import logging.config

    logging.config.dictConfig(LOGGING)

然后执行以下操作:

import logging
logger = logging.getLogger(__name__)

logger.info("INFO")
logger.debug("DEBUG")
logger.warn("WARN")
logger.critical("CRITICAL")
logger.error("ERROR")

但是我只得到以下输出:

2019-05-21 14:08:31,877 WARNING  dashboards.charts WARN
2019-05-21 14:08:31,877 CRITICAL dashboards.charts CRITICAL
2019-05-21 14:08:31,877 ERROR    dashboards.charts ERROR

我尝试将级别更改为DEBUG或info,但是没有任何改变。格式化程序可以正常工作,所以我不知道为什么该级别不起作用。

1 个答案:

答案 0 :(得分:1)

尝试将level而不是loggers放在handlers内。 例如:

'handlers': {
    'console': {
        'class': 'logging.StreamHandler',
        'formatter': 'custom'
    }
},
'loggers': {
    '': {
        'handlers': ['console'],
        'level': 'DEBUG'
    }
}