2010-08-02 18 views
38

Projemin bir parçası olarak basit bir http sunucusu yazıyorum.HTTPServer ve BasicHTTPRequestHandler'in stderr çıkışı nasıl sessiz/sessiz yapılır?

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

Sorum: Ben komut dosyası bir istemci benim sunucuya her bağlandığında üreten Stderr günlük çıkışı bastırmak nasıl Aşağıda Senaryomun bir iskelet?

HTTPServer sınıfına kendi ana sayfasına kadar baktım, ancak bunu başarmak için herhangi bir bayrak veya işlev çağrısı bulamadı. Ayrıca BaseHTTPRequestHandler sınıfına baktım ama bir ipucu bulamadı. Eminim bir yolu olmalı. Eğer yaparsanız, lütfen benimle ve başkalarıyla paylaşın; Çabanı takdir ediyorum.

cevap

84

Bu muhtemelen yapacağız:

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

MattH: Sizin çözüm mükemmel çalışıyor. Teşekkür ederim. –

+0

Bu bana böyle bir baş ağrısını verdi çünkü httpserver'ım arka planda bir tty olmadan koştuğumda hiçbir şey döndürmedi. Sen bir hayat kurtarıcısın. Teşekkürler! – agressen

İlgili konular