【问题标题】:Django logging not working at all levels with a valid config?Django 日志记录无法在所有级别使用有效配置?
【发布时间】:2019-04-02 12:09:25
【问题描述】:

我的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

为什么会这样?

【问题讨论】:

    标签: django logging


    【解决方案1】:

    这个有用的小行是在一个完全独立的文件中找到的,它在调试级别禁用了日志记录,一旦删除,日志记录就会按预期工作:

    # bar.py
    logging.disable(logging.DEBUG)
    

    可以在here 找到文档。我希望这可以为其他人节省几个小时的挫败感。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-12-11
      • 2016-11-27
      • 1970-01-01
      • 2013-09-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多