python中如何记录server.serve_forever()的信息至log文件中,包括连接信息
时间: 2024-09-30 22:07:46 浏览: 33
在Python中,如果你想要记录`socketserver.ThreadingTCPServer`(如`http.server`模块下的`HTTPServer`)的`serve_forever()`函数运行期间的连接信息到日志文件,你可以使用内置的`logging`模块。以下是一个简单的例子:
```python
import logging
from http.server import ThreadingHTTPServer
class MyHandler(http.server.SimpleHTTPRequestHandler):
def do_GET(self):
# ...处理GET请求...
self.send_response(200)
self.end_headers()
self.wfile.write(b'Hello, World!')
# 创建logger实例并设置日志级别和格式
logging.basicConfig(filename='server_log.txt', level=logging.INFO,
format='%(asctime)s - %(levelname)s - %(message)s')
# 定义服务器
with ThreadingHTTPServer(('localhost', 8000), MyHandler) as server:
server.serve_forever()
# 当服务停止(例如,通过Ctrl+C),记录当前状态
log_message = "Server stopped"
logging.info(log_message)
```
在这个例子中,每当有新的连接请求或`serve_forever()`结束时(即服务器关闭时),都会有一条相应的记录添加到名为`server_log.txt`的日志文件中。
阅读全文