mirror of
https://github.com/kennethreitz/flask-sockets.git
synced 2026-06-05 15:00:17 +00:00
Merge pull request #36 from RepositPower/gunicorn-access-log
Just added a small patch to make the flask_sockets.worker play nicely with gunicorn's access-logformat
This commit is contained in:
+13
-17
@@ -4,29 +4,17 @@ from werkzeug.routing import Map, Rule
|
||||
from werkzeug.exceptions import NotFound
|
||||
|
||||
|
||||
def log_request(self):
|
||||
log = self.server.log
|
||||
if log:
|
||||
if hasattr(log, 'info'):
|
||||
log.info(self.format_request() + '\n')
|
||||
else:
|
||||
log.write(self.format_request() + '\n')
|
||||
|
||||
|
||||
# Monkeys are made for freedom.
|
||||
try:
|
||||
import gevent
|
||||
from geventwebsocket.gunicorn.workers import GeventWebSocketWorker as Worker
|
||||
from geventwebsocket.handler import WebSocketHandler
|
||||
from gunicorn.workers.ggevent import PyWSGIHandler
|
||||
|
||||
import gevent
|
||||
except ImportError:
|
||||
pass
|
||||
|
||||
|
||||
if 'gevent' in locals():
|
||||
# Freedom-Patch logger for Gunicorn.
|
||||
if hasattr(gevent, 'pywsgi'):
|
||||
gevent.pywsgi.WSGIHandler.log_request = log_request
|
||||
|
||||
|
||||
class SocketMiddleware(object):
|
||||
|
||||
def __init__(self, wsgi_app, app, socket):
|
||||
@@ -105,5 +93,13 @@ class Sockets(object):
|
||||
|
||||
|
||||
# CLI sugar.
|
||||
if 'Worker' in locals():
|
||||
if ('Worker' in locals() and 'PyWSGIHandler' in locals() and
|
||||
'gevent' in locals()):
|
||||
|
||||
class GunicornWebSocketHandler(PyWSGIHandler, WebSocketHandler):
|
||||
def log_request(self):
|
||||
if '101' not in self.status:
|
||||
super(GunicornWebSocketHandler, self).log_request()
|
||||
|
||||
Worker.wsgi_handler = GunicornWebSocketHandler
|
||||
worker = Worker
|
||||
|
||||
Reference in New Issue
Block a user