-
Notifications
You must be signed in to change notification settings - Fork 0
/
mw.py
28 lines (24 loc) · 933 Bytes
/
mw.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
from __future__ import print_function
from noodles.middleware.middleware import BaseMiddleware
from gevent.lock import BoundedSemaphore as Semaphore
import json,datetime
class Logger(BaseMiddleware):
def __init__(self,link):
self._sem = Semaphore(1)
self.link = link
def run(self,producer,request):
import gevent.monkey, gevent.socket
#gevent.monkey.patch_all()
import socket
assert socket.socket is gevent.socket.socket, "gevent monkey patch has not occurred"
self._sem.acquire()
try:
print(json.dumps([datetime.datetime.now().isoformat(),
request.remote_addr,
request.method,
request.path,
request.headers.get('Authorization')]))
finally:
self._sem.release()
pass
return self.link(producer,request)