我的应用程序使用以下简单的线程文件服务器:
class FileServer(Thread):
"""Simple file server exposing the current directory for the thumbnail
creator
"""
def __init__(self, port):
Thread.__init__(self)
self.port = port
Handler = SimpleHTTPServer.SimpleHTTPRequestHandler
self.httpd = SocketServer.TCPServer(("", port), Handler)
def run(self):
self.httpd.serve_forever()
def stop(self):
self.httpd.shutdown()
如何防止 SimpleHTTPServer 在每次请求时输出“GET 'http://BLA BLA BLA”?谢谢
最佳答案
您可以继承 SimpleHTTPServer.SimpleHTTPRequestHandler
并覆盖 log_message
方法。这是您将覆盖的方法,没有文档字符串:
def log_message(self, format, *args):
sys.stderr.write("%s - - [%s] %s\n" %
(self.address_string(),
self.log_date_time_string(),
format%args))
因此,要简单地忽略所有消息,请将函数体替换为 pass
。对于更细粒度的控制(即,如果您仍然希望打印错误消息),您可以改写 log_request
和/或 log_error
方法。原来的方法是这样的:
def log_request(self, code='-', size='-'):
self.log_message('"%s" %s %s',
self.requestline, str(code), str(size))
def log_error(self, format, *args):
self.log_message(format, *args)
从 2.7 到 3.1,模块名称发生变化,但这些方法没有变化。
关于python - 如何安静 SimpleHTTPServer?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10651052/