如果没有实现log_message接口,接收到http请求时,库会自动有如下打印:
192.168.200.238 - - [15/Jun/2022 16:53:20] "GET /favicon.ico HTTP/1.1" 200 -
必须实现类http.server.CGIHTTPRequestHandler的方法log_message,并直接返回才行。代码如下:
import http.server
import socketserver
HOSTADDR = "" #服务器IP
HOSTPORT = 8080 #服务器端口
class MyServer(http.server.CGIHTTPRequestHandler):
def do_GET(self):
return
#实现接口,去掉内置打印
def log_message(self, format: str, *args):
return
def do_POST(self):
return
def main():
with socketserver.TCPServer((HOSTADDR, HOSTPORT), MyServer) as server:
server.serve_forever()
if __name__ == '__main__':
main()
在百度上搜索去掉python的http.server.CGIHTTPRequestHandler的打印,是搜索不到的,只有去谷歌上才能找到答案,算是填补空白了。
本文介绍如何在Python的http.server模块中自定义CGIHTTPRequestHandler,以消除接收到HTTP请求时的默认日志打印。通过重写log_message方法并使其为空实现这一目标。示例代码展示了如何创建一个不打印日志的简单HTTP服务器。
1028

被折叠的 条评论
为什么被折叠?



