gpt4 book ai didi

python - 控制 wsgiref simple_server 日志

转载 作者:太空狗 更新时间:2023-10-29 20:40:41 26 4
gpt4 key购买 nike

我正在使用 wsgiref.simple_server 来研究网络服务器的世界。
我想控制生成的日志,但在 Python's documentation 中找不到任何相关信息.

我的代码是这样的:

from wsgiref.simple_server import make_server

def application(environ, start_response):
start_response('200 OK', headers)
return ['Hello World']

httpd = make_server('', 8000, application)
httpd.serve_forever()

最佳答案

wsgiref.simple_server.make_server 默认创建一个带有 WSGIRequestHandlerWSGIServer:

def make_server(
host, port, app, server_class=WSGIServer, handler_class=WSGIRequestHandler):
"""Create a new WSGI server listening on `host` and `port` for `app`"""
server = server_class((host, port), handler_class)
server.set_app(app)
return server

WSGIRequestHandler 是从 BaseHTTPServer.BaseHTTPRequestHandler 扩展而来的,其中的日志记录魔法是:

def log_message(self, format, *args):
sys.stderr.write("%s - - [%s] %s\n" %
(self.client_address[0],
self.log_date_time_string(),
format%args))

所以它记录到 stderr,实际上,而不是 python 记录模块。您可以在自己的处理程序中覆盖它:

class NoLoggingWSGIRequestHandler(WSGIRequestHandler):

def log_message(self, format, *args):
pass

并将您的自定义处理程序传递给服务器:

httpd = make_server('', 8000, application, handler_class=NoLoggingWSGIRequestHandler)

关于python - 控制 wsgiref simple_server 日志,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31433682/

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