当前位置: 首页 > 知识库问答 >
问题:

如何在Django中禁用来自请求库的日志消息

鲁涵映
2023-03-14

我看到了如何禁用请求库中的日志消息?我想知道,我如何使用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,
        },
    }
}

共有1个答案

吴康平
2023-03-14

我相信以下办法会奏效:

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

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

 类似资料:
  • 我正在开发一个简单的桌面应用程序(不是webapp)。 它们有不同的模式。好像他们忽略了我的设置。 我也试着应用我在这里找到的建议: https://spring.io/blog/2009/12/04/logging-dependencies-in-spring

  • 按照此链接中的说明,我在Azure中创建了一个Web应用程序,在.NET core framework中创建了一个Web API。 现在在我的Web应用程序中,启用了应用程序Insights。 在WebAPI中有一些类似的日志记录代码。 默认情况下,它会打印一些跟踪日志(类似于应用程序洞察)。 现在我的要求是它不应该打印应用程序Insights中的所有默认日志。它只能打印带有的文件。如何和在何处禁

  • 14:54:38.961[main]DEBUG o.s.o.rdf.rdfxml.parser.TripleLogger-三元组总数:4788 14:54:38.966[main]DEBUG o.s.o.r.r.p.OptimisedListTranslator-List:ObjectPropertyAtom(http://www.semanticweb.org/michel/ontologies

  • 我没有使用任何日期选择器仍然代码工作正常。我已经选择了输入类型日期和一切工作正常。现在我想禁用未来的日期。我该怎么做呢? 编辑:通过其他方式解决问题 我用过日期选择器 它是如此容易实现。只需安装npm包 同时安装力矩传感器 导入库 在构造函数中 dateChange函数 最后是渲染函数 这里使用maxDate函数来禁用未来的日期。 资料来源:https://www.npmjs.com/packag

  • 问题内容: 我只是想在我的项目中禁用Restlet的日志到stdout / stderr,并通过org.restlet.ext.slf4j提供的SLF4J门面转发所有Restlet日志。是否有捷径可寻? 问题答案: 首先,您必须配置SLF4J来拦截Restlet对java.util.logging API的所有调用,并将它们映射到SLF4J Facade的API上的调用。您只需将jul-to- s