我已将 socketserver 设置为运行一些单元测试,并将其日志输出到控制台。
有没有办法禁用它?
这是我正在运行的大致代码:
class TestServer(SocketServer.TCPServer):
allow_reuse_address = True
class ScraperExampleTest(unittest.TestCase):
def setUp(self):
# Due to requests not supporting the 'file' scheme, we are forced to run
# our own server. See: https://github.com/kennethreitz/requests/issues/847
Handler = SimpleHTTPServer.SimpleHTTPRequestHandler
httpd = TestServer(('', PORT), Handler)
httpd_thread = threading.Thread(target=httpd.serve_forever)
httpd_thread.setDaemon(True)
httpd_thread.start()
最佳答案
打印输出不是来自 TCPServer,而是来自 SimpleHTTPRequestHandler,或者更准确地说,它是父类:BaseHTTPRequestHandler。您可以通过创建自己的处理程序和重载来更改行为:
def log_message(self, format, *args)
像这样的东西应该可以工作:
class TestServer(SocketServer.TCPServer):
allow_reuse_address = True
logging = False
class MyHandler(SimpleHTTPServer.SimpleHTTPRequestHandler):
def log_message(self, format, *args):
if self.server.logging:
SimpleHTTPServer.SimpleHTTPRequestHandler.log_message(self, format, *args)
关于python - 如何在 Python 中禁用 socketserver 的输出?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16501753/