gpt4 book ai didi

python - 如何禁用 HTTP 响应调试?

转载 作者:太空宇宙 更新时间:2023-11-04 05:01:08 24 4
gpt4 key购买 nike

我的 python 代码当前在每次 REST API 调用结束时将以下行打印到日志中(有关它发回的响应的高级信息):

111.111.111.111 - - [15/Aug/2017:12:03:15 +0000] "POST /some_endpoint 
HTTP/1.1" 202 72 "-" "python-requests/2.2.1 CPython/3.4.3 Linux/3.13.0-83-generic"

通过其他搜索,我看到了以下关于如何摆脱它的建议:

1) logging.getLogger('werkzeug').setLevel(logging.ERROR)

2) logging.getLogger('werkzeug').disabled = True

3) 同上,但是requests 而不是werkzeug

这些没有效果。提供的另一个解决方案是使用完全不同的流进行日志记录,但这不是满足我需求的选项。

由于格式不同,这显然是通过与我的其他日志不同的机制记录的,但我似乎无法查明罪魁祸首。

最佳答案

一般来说,你可以找到logging在任何库中实例并调整日志记录级别

您可以访问 logging通过 werkzeug._internal 实用程序

from werkzeug._internal import _logger

然后我将根记录器调整为 logging.CRITICAL (即 50)

_logger.setLevel(50)

这意味着Werkzeug只会打印CRITICAL(或更高)输出

然后您可以根据需要调整_logger级别

直接例子

这适用于您的示例,方法是在 Werkzeug 中搜索 import logging 命令github页面。这是我在 werkzeug._internal 中找到的,然后我们可以做

In [2]: from werkzeug.wrappers import Request, Response
...:
...: @Request.application
...: def application(request):
...: return Response('Hello World!')
...:

In [3]: from werkzeug.serving import run_simple

In [4]: run_simple('localhost', 4000, application)
* Running on http://localhost:4000/ (Press CTRL+C to quit)

In [5]: from werkzeug import _internal

In [6]: _internal._log('info', 'Setting logger level to Critical!') # see below why this is required
Out[6]: 'Setting logger level to Critical!'

In [7]: _internal._logger.setLevel(50)

In [7]: run_simple('localhost', 4000, application)

_logger 为 None 的情况下,会发生这种情况,因为没有调用 Werkzeug 日志记录实例。参见 line 75_internal 中更清晰

In [1]: from werkzeug import _internal

In [2]: type(_internal._logger)
Out[2]: NoneType

In [3]: _internal._log('info', 'removing logger!')
removing logger!

In [4]: type(_internal._logger)
Out[4]: logging.Logger

关于python - 如何禁用 HTTP 响应调试?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45692736/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com