2010-08-02 2 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() 

내 질문 : 내 스크립트가 클라이언트가 내 서버에 연결할 때마다 생산하는 표준 에러 로그 출력 억제 어떻게 다음 내 스크립트의 골격은?

상위까지 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

tty가없는 백그라운드에서 실행했을 때 내 httpserver가 아무 것도 반환하지 않아서 이런 두통을 겪었습니다. 당신은 생명의 은인입니다. 감사! – agressen