使用有效的配置,Django日志记录不能在所有级别上正常工作吗?

时间:2019-04-02 12:09:25

标签: django logging

我的settings.py中有一个有效的django配置,我知道这是因为RotatingFileHandler的文件路径已被考虑在内。我的问题是logging.DEBUG的日志未打印到文件中。

运行记录器的我的设置和文件如下:

# settings.py
DJANGO_LOG_LEVEL = logging.DEBUG
DEFAULT_LOG_PATH = 'foo/logs/foo.log'

LOGGING = {
    'version': 1,
    'disable_existing_loggers': False,
    'formatters': {
        'standard': {
            'format': 'TEST {asctime} {module} {levelname} {message}',
            'style': '{'
        },
    },
    'handlers': {
        'console': {
            'class': 'logging.StreamHandler',
        },
        'default': {
            'level': DJANGO_LOG_LEVEL,
            'class': 'logging.handlers.RotatingFileHandler',
            'filename': DEFAULT_LOG_PATH,
            'formatter': 'standard'
        },
    },
    'loggers': {
        'kapsule': {
            'handlers': ['default'],
            'level': logging.DEBUG,
        },
    },
}

# foo.py
logger = logging.getLogger("foo.monitor")
logger.debug('debug') # nothing
logger.info('info') # printed fine
logger.warning('warning') # printed fine
logger.error('error') # printed fine
logger.critical('critical') # printed fine

为什么会这样?

1 个答案:

答案 0 :(得分:0)

在完全独立的文件中发现了这一有用的小行,该文件禁用了调试级别的日志记录,一旦将其删除,日志记录将按预期工作:

# bar.py
logging.disable(logging.DEBUG)
可以在here中找到

文档。我希望这可以节省别人几个小时的挫败感。