【问题标题】:How to disable log messages from the Requests library in Django如何在 Django 中禁用 Requests 库中的日志消息
【发布时间】:2016-04-19 02:32:52
【问题描述】:

我看到How do I disable log messages from the Requests library? 我想知道,我如何使用 django 来管理这些设置?本质上,问题在于Requests 库过于冗长,我想将其日志级别调整为warning 甚至error

我们的日志填充这些:

INFO - requests.packages.urllib3.connectionpool (_new_conn:735) 
        Starting new HTTPS connection (1): www.example.com
INFO - requests.packages.urllib3.connectionpool (_new_conn:735) 
        Starting new HTTPS connection (1): localhost

这是我当前的 Django 日志记录配置,我认为可以解决库过于冗长的问题。但它不起作用。

LOGGING = {
    'version': 1,
    'disable_existing_loggers': False,
    'formatters': {
        'verbose': {
            'format': ' '.join(['%(asctime)s', '%(levelname)8s', '- %(name)s',
                                '(%(funcName)s:%(lineno)d)', os.sep, ' ' * 4, '%(message)s']),
            'datefmt': DATEFORMAT,
        },
        'default': {
            'format': ' '.join(['%(asctime)s', '%(levelname)8s', '- %(message)s']),
            'datefmt': DATEFORMAT,
        },
        'syslog': {
            'format': ' '.join([PROCTITLE + '[%(process)d]', '[%(levelname)s]', '(%(module)s %(funcName)s:%(lineno)d)',
                                '- %(message)s']),
            'datefmt': DATEFORMAT,
        },
    },
    'filters': {
        'require_debug_false': {
            '()': 'django.utils.log.RequireDebugFalse'
        }
    },
    'handlers': {
        'null': {
            'level': HANDLER_LEVEL,
            'class': 'django.utils.log.NullHandler',
        },
        'mail_admins': {
            'level': 'ERROR',
            'filters': ['require_debug_false'],
            'class': 'django.utils.log.AdminEmailHandler',
        },
        'console_handler': {
            'level': parser.get('logging', 'handler.console.level'),
            'formatter': 'verbose',
            'class': 'ppcc.lib.logs.TwistedStreamHandler',
        },
        'default': {
            'level': HANDLER_LEVEL,
            'formatter': 'syslog',
            'class': 'logging.handlers.SysLogHandler',
            'address': '/dev/log',
            'facility': 20,
        },
    },
    'loggers': {
        'django': {
            'handlers': ['default'],
            'propagate': True,
            'level': parser.get_log_level('django'),
        },
        'django.request': {
            'handlers': ['mail_admins', 'default'],
            'level': 'ERROR',
            'propagate': False,
        },
        'boto': {
            'handlers': DEFAULT_HANDLERS,
            'level': 'WARNING',
        },
        'requests': {
            # The requests library is too verbose in it's logging, reducing the verbosity in our logs.
            'handlers': DEFAULT_HANDLERS,
            'level': 'WARNING',
            'propagate': True,
        },
        'urllib3': {
            'handers': DEFAULT_HANDLERS,
            'level': 'WARNING',
            'propagate': True
        },
        'cassandra': {
            'handlers': DEFAULT_HANDLERS,
            'level': 'WARNING',
        },
        'cqlengine': {
            'handlers': DEFAULT_HANDLERS,
            'propagate': True,
            'level': 'WARNING',
        },
        '': {
            'handlers': DEFAULT_HANDLERS,
            'level': LOG_LEVEL,
        },
    }
}

【问题讨论】:

  • 尝试 disable_existing_loggers = True。
  • @MikkoOhtamaa 没用。

标签: python django logging python-requests


【解决方案1】:

我相信以下方法会起作用:

import logging
logging.getLogger('requests.packages.urllib3.connectionpool').setLevel(logging.ERROR)

您可以检索现有记录器并对其进行操作。我同样有一个大嘴子模块,另一个完全关闭它的选择是在记录器上设置propagate = False

【讨论】:

  • 对于 wikipedia 包,这个工作:logging.getLogger('urllib3.connectionpool').setLevel(logging.ERROR)
【解决方案2】:

正确的解决方案是我认为的,只需将其添加到 `settings.py' 中的LOGGING 设置

    'requests': {
        # The requests library is too verbose in it's logging, reducing the verbosity in our logs.
        'handlers': DEFAULT_HANDLERS,
        'level': 'WARNING',
    },

【讨论】:

  • 设置 'urllib3.connectionpool': { 'handlers': DEFAULT_HANDLERS, 'level': 'WARNING', 'propagate': False, } 为我工作。
猜你喜欢
  • 2012-06-17
  • 1970-01-01
  • 1970-01-01
  • 2015-07-29
  • 2015-11-23
  • 1970-01-01
  • 1970-01-01
  • 2014-01-24
  • 2019-05-27
相关资源
最近更新 更多