def __init__(self, *args, **kwargs): Worker.__init__(self, *args, **kwargs) Logger.access = _access Logger.error = _error server.set_access_logger(self.log) server.set_error_logger(self.log)
def run(self, handler): from meinheld import server if self.quiet: server.set_access_logger(None) server.set_error_logger(None) server.listen((self.host, self.port)) server.run(handler)
def test_custom_err_log(): def client(): return requests.get("http://localhost:8000/foo/bar") from meinheld import server logger = TestLogger() server.set_error_logger(logger) env, res = run_client(client, ErrApp) assert (res.status_code == 500)
def __init__(self, *args, **kwargs): Worker.__init__(self, *args, **kwargs) Logger.access = _access Logger.error = _error if self.cfg.accesslog is self.cfg.logconfig is None: server.set_access_logger(None) else: server.set_access_logger(self.log) server.set_error_logger(self.log)
def meinheld_server_runner(wsgi_app, global_config, **settings): from meinheld import server, middleware host = settings.get('host', '0.0.0.0') port = int(settings.get('port', 8080)) server.listen((host, port)) server.set_access_logger(None) server.set_error_logger(None) print('Starting HTTP server on http://%s:%s' % (host, port)) server.run(middleware.WebSocketMiddleware(wsgi_app))
def test_custom_err_log(): def client(): return requests.get("http://localhost:8000/foo/bar") from meinheld import server logger = TestLogger() server.set_error_logger(logger) env, res = run_client(client, ErrApp) assert(res.status_code == 500)
def start(name): print "started server at "+str(host)+":"+str(port) if name =="meinheld": from meinheld import server server.set_access_logger(None) server.set_error_logger(None) server.listen((host, port)) server.run(app) elif name =="gevent": #from gevent import wsgi #wsgi.WSGIServer((host, port), application=app.application, log=None).serve_forever() from gevent.pywsgi import WSGIServer WSGIServer((host, port), app, log=None).serve_forever() elif name =="bjoern": import bjoern bjoern.listen(app, host, port) bjoern.run() elif name =="eventlet": import eventlet from eventlet import wsgi #worker_pool = eventlet.GreenPool(2000) #wsgi.server(eventlet.listen(('', port)), app, custom_pool=worker_pool, log=file('/dev/null', 'w')) # max_size wsgi.server(eventlet.listen(('', port)), app, max_size=10000, log=file('/dev/null', 'w')) elif name =="fapws": import fapws._evwsgi as evwsgi from fapws import base evwsgi.start(host, str(port)) evwsgi.set_base_module(base) evwsgi.wsgi_cb(('/', app)) evwsgi.set_debug(0) evwsgi.run() elif name=="uwsgi": print ("""Enter this command in the console \nsudo uwsgi --http :8000 --master --disable-logging --pythonpath /home/a/g --wsgi-file w.py --listen 2 --buffer-size 2048 --async 10000 --ugreen -p 4 """) # http://osdir.com/ml/python-wsgi-uwsgi-general/2011-02/msg00136.html # # Re: strange SIGPIPE: writing to a closed pipe/socket/fd on image requested from facebook -msg#00136 """ SIGPIPE: writing to a closed pipe/socket/fd (probably the client disconnected) on request /1 (ip 127.0.0.1) !!! uwsgi_response_write_body_do(): Broken pipe [core/writer.c line 260] IOError: write error """ cmd_txt = "sudo uwsgi --http :8000 --master --harakiri 1 --harakiri-verbose --close-on-exec --disable-logging --pythonpath /home/a/todo/test --wsgi-file w2.py --listen 2 --buffer-size 2048 --async 10000 --ugreen -p 4" cmd(cmd_txt) elif name=="pycgi": from wsgiref.handlers import CGIHandler CGIHandler().run(app) elif name=="pystandard": from wsgiref.simple_server import make_server make_server(host, port, app).serve_forever()
from meinheld import server def hello_world(environ, start_response): status = '200 OK' res = b"Hello world!" response_headers = [('Content-type','text/plain')] start_response(status, response_headers) #print(environ) return [res] server.listen(("0.0.0.0", 8000)) server.set_access_logger(None) server.set_error_logger(None) server.run(hello_world)
# add request headers for k, v in environ.items(): if k.startswith('HTTP_'): #header header = "{%s}i" % k[5:].lower() atoms[header] = v # atoms.update(dict([("{%s}i" % k.lower(),v) for k, v in req_headers])) # # add response headers # atoms.update(dict([("{%s}o" % k.lower(),v) for k, v in resp.headers])) # # wrap atoms: # # - make sure atoms will be test case insensitively # # - if atom doesn't exist replace it by '-' safe_atoms = SafeAtoms(atoms) try: msg = self.cfg.access_log_format % safe_atoms self.access_log.info(msg) except: self.error(*sys.exc_info()) logger = Logger() from meinheld import server server.set_access_logger(logger) server.set_error_logger(logger)