gib*_*nic 8 python wsgiref python-2.7
我正在玩弄wsgiref.simple_server研究Web服务器的世界.
我想控制生成的日志,但在Python的文档中找不到任何关于它的内容.
我的代码看起来像这样:
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()
Run Code Online (Sandbox Code Playgroud)
Tuu*_*nen 19
wsgiref.simple_server.make_server默认情况下,创建一个WSGIServer具有WSGIRequestHandler:
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
Run Code Online (Sandbox Code Playgroud)
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))
Run Code Online (Sandbox Code Playgroud)
所以它实际上是登录到stderr,而不是python日志模块.您可以在自己的处理程序中覆盖它:
class NoLoggingWSGIRequestHandler(WSGIRequestHandler):
def log_message(self, format, *args):
pass
Run Code Online (Sandbox Code Playgroud)
并将您的自定义处理程序传递给服务器:
httpd = make_server('', 8000, application, handler_class=NoLoggingWSGIRequestHandler)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1407 次 |
| 最近记录: |