11# -*- coding: utf-8 -*-
22
3+ def log_request (self ):
4+ log = self .server .log
5+ if log :
6+ if hasattr (log , 'info' ):
7+ log .info (self .format_request () + '\n ' )
8+ else :
9+ log .write (self .format_request () + '\n ' )
10+
11+
12+ # Monkeys are made for freedom.
313try :
414 import gevent
515 from geventwebsocket .gunicorn .workers import GeventWebSocketWorker as Worker
616except ImportError :
7- # Don't fail, in case someone is using somethign else that provides
8- # "wsgi.websocket".
917 pass
1018
19+ if 'gevent' in locals ():
20+ # Freedom-Patch logger for Gunicorn.
21+ if hasattr (gevent , 'pywsgi' ):
22+ gevent .pywsgi .WSGIHandler .log_request = log_request
1123
12- def log_request (self ):
13- log = self .server .log
14- if log :
15- write = log .info if hasattr (log , 'info' ) else log .write
16- write (self .format_request () + '\n ' )
1724
1825
1926class SocketMiddleware (object ):
@@ -36,18 +43,12 @@ def __call__(self, environ, start_response):
3643
3744class Sockets (object ):
3845
39- def __init__ (self , app = None , patch = True ):
46+ def __init__ (self , app = None ):
4047 self .url_map = {}
4148 if app :
42- self .init_app (app , patch = patch )
43-
44- def init_app (self , app , patch = True ):
45- if patch :
46- # Monkey-patch log_request handler for Gevent/Gunicorn compatability.
47- if 'gevent' in locals ():
48- if hasattr (gevent , 'pywsgi' ):
49- gevent .pywsgi .WSGIHandler .log_request = log_request
49+ self .init_app (app )
5050
51+ def init_app (self , app ):
5152 app .wsgi_app = SocketMiddleware (app .wsgi_app , self )
5253
5354 def route (self , rule , ** options ):
0 commit comments