python - 如何安静 SimpleHTTPServer?

标签 python simplehttpserver

我的应用程序使用以下简单的线程文件服务器:

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/

相关文章:

python - SimpleHTTPServer 不工作

python - 无法使用Python连接简单的国际空间站api

python - Python中使用MixIns时出现菱形问题

python - [x](y) 运算符到底是做什么的?

python - librosa 和 tensorflow 之间相同 wav 文件的不同采样率 SR

Python 简单的 HTTPS 转发器

Python SimpleHTTPServer接收文件

python - 找到我的数据中斜率变化的位置作为可以轻松索引和提取的参数

python - Python 中的嵌入式 Web 服务器?

C 线程 Http 服务器错误