web-dev-qa-db-ja.com

HTTPServerとBasicHTTPRequestHandlerのstderr出力をサイレント/クワイエットする方法は?

プロジェクトの一部として単純な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()

私の質問:クライアントがサーバーに接続するたびにスクリプトが生成するstderrログ出力を抑制するにはどうすればよいですか?

私はHTTPServerクラスをその親まで調べましたが、これを達成するためのフラグや関数呼び出しを見つけることができませんでした。 BaseHTTPRequestHandlerクラスも調べましたが、手掛かりが見つかりませんでした。道があるに違いない。もしそうなら、私や他の人と共有してください。あなたの努力に感謝します。

59
Hai Vu

これはおそらくそれを行います:

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()
110
MattH