2010-08-02 6 views
38

मैं अपनी परियोजना के हिस्से के रूप में एक साधारण http सर्वर लिख रहा हूं।HTTPServer और BasicHTTPRequestHandler के stderr आउटपुट को चुप/शांत कैसे करें?

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 क्लास को भी देखा, लेकिन एक सुराग नहीं मिला। मुझे यकीन है कि एक रास्ता होना चाहिए। यदि आप करते हैं, तो कृपया मेरे साथ और दूसरों के साथ साझा करें; मैं आपके प्रयास की सराहना करता हूँ।

उत्तर

84

यह शायद यह करना होगा:

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: आपका समाधान पूरी तरह से काम करता है। धन्यवाद। –

+0

इसने मुझे ऐसा सिरदर्द दिया क्योंकि जब मैं पृष्ठभूमि में इसे बिना किसी टीटी के चलाता था तो मेरा httpserver कुछ भी वापस नहीं कर रहा था। आप एक जीवन रक्षक है। धन्यवाद! – agressen

संबंधित मुद्दे