如何禁用Eventlet日志?Python WSGI服务器日志关闭求助
如何禁用Eventlet WSGI服务器的日志输出
要关闭Eventlet WSGI服务器的日志,有两个可靠的解决方法:
方法1:直接指定log参数为None
修改启动WSGI服务器的代码,给eventlet.wsgi.server传入log=None参数,这是最直接的方式:
if __name__ == '__main__': eventlet.wsgi.server(eventlet.listen(('', 5000)), app, log=None)
Eventlet的WSGI服务器默认会使用logging.getLogger('eventlet.wsgi')作为日志记录器,将log设为None会直接禁用所有日志输出。
方法2:通过logging模块调整日志级别
如果第一种方法不生效,可以直接针对eventlet.wsgi这个日志记录器设置极高的日志级别,让所有日志都被过滤掉:
import eventlet import socketio import logging # 把eventlet.wsgi的日志级别设为高于最高级CRITICAL,彻底禁用日志 logging.getLogger('eventlet.wsgi').setLevel(logging.CRITICAL + 1) sio= socketio.Server() app = socketio.WSGIApp(sio, static_files={ '/': {'content_type': 'text/html', 'filename': '/home/*****/SecChat/index.html'} }) # 业务代码... if __name__ == '__main__': eventlet.wsgi.server(eventlet.listen(('', 5000)), app)
很多无效的方法都是因为修改了根日志记录器,而非Eventlet WSGI专用的eventlet.wsgi记录器,所以针对目标记录器设置才会生效。
内容的提问来源于stack exchange,提问作者Shards-7
相关产品推荐
相关产品推荐

