如何静默/安静HTTPServer和BasicHTTPRequestHandler的stderr输出?

Hai*_* Vu 55 python basehttpserver httpserver

我正在编写一个简单的http服务器作为我项目的一部分.下面是我的脚本的框架:

from BaseHTTPServer import HTTPServer, BaseHTTPRequestHandler

class MyHanlder(BaseHTTPRequestHandler):
    def do_GET(self):
        self.send_response(200)
        self.send_header('Content-type', 'text/html')
        self.end_headers()
        self.wfile.write('<html><body><p>OK</p></body></html>')

httpd = HTTPServer(('', 8001), MyHanlder)
httpd.serve_forever()
Run Code Online (Sandbox Code Playgroud)

我的问题:每次客户端连接到我的服务器时,如何抑制脚本生成的stderr日志输出?

我已经查看了HTTPServer类到它的父级,但是无法找到任何标志或函数调用来实现这一点.我还查看了BaseHTTPRequestHandler类,但找不到线索.我相信一定有办法.如果你这样做,请与我和其他人分享; 我感谢您的努力.

Mat*_*ttH 114

这可能会这样做:

from BaseHTTPServer import HTTPServer, BaseHTTPRequestHandler

class MyHandler(BaseHTTPRequestHandler):
    def do_GET(self):
        self.send_response(200)
        self.send_header('Content-type', 'text/html')
        self.end_headers()
        self.wfile.write('<html><body><p>OK</p></body></html>')
    def log_message(self, format, *args):
        return

httpd = HTTPServer(('', 8001), MyHandler)
httpd.serve_forever()
Run Code Online (Sandbox Code Playgroud)

  • 您可能想要覆盖 `log_request` 而不是 `log_message`,因为后者用于其他类型的日志记录,包括错误。 (3认同)