web-dev-qa-db-fra.com

Comment silencieux / silencieux HTTPServer et la sortie stderr de BasicHTTPRequestHandler?

J'écris un simple serveur http dans le cadre de mon projet. Voici un squelette de mon script:

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

Ma question: comment supprimer la sortie du journal stderr que mon script produit chaque fois qu'un client se connecte à mon serveur?

J'ai regardé la classe HTTPServer jusqu'à son parent, mais je n'ai pu trouver aucun indicateur ou appel de fonction pour y parvenir. J'ai également regardé la classe BaseHTTPRequestHandler, mais je n'ai pas trouvé d'indice. Je suis sûr qu'il doit y avoir un moyen. Si vous le faites, veuillez partager avec moi et les autres; J'apprécie ton effort.

59
Hai Vu

Cela le fera probablement:

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