@@ -152,8 +152,6 @@ def index():
152152 def _dispatch_request (self , request ):
153153 """Dispatches the request."""
154154 adapter = self ._url_map .bind_to_environ (request .environ )
155- response = None
156- content = None
157155 try :
158156 endpoint , values = adapter .match ()
159157 view_func = self ._view_function_map .get (endpoint )
@@ -171,34 +169,35 @@ def _dispatch_request(self, request):
171169 return response
172170 except HTTPException as e :
173171 return e
174- finally :
175- if "monitor" not in request .full_path and "log" not in request .full_path :
176- data = {
177- "date" : datetime .now ().strftime ("%Y-%m-%d %H:%M:%S" ),
178- "request" : {
179- "method" : request .full_path ,
180- "path" : request .url ,
181- "headers" : dict (request .headers .items ()),
182- "data" : request .data .decode ("utf-8" ),
183- },
184- "response" : {
185- "headers" : dict (request .headers .items ()) if response else None ,
186- # 'data': response.data.decode('utf-8') if response else None,
187- "data" : content .data .decode ("utf-8" )
188- if isinstance (content , Response )
189- else content ,
190- "status_code" : response .status_code if response else None ,
191- },
192- }
193- # import ndjson
194- print (11111 , request .full_path )
195- logger .info (json .dumps (data ))
196172
197173 def wsgi_app (self , environ , start_response ):
198174 """WSGI application that processes requests and returns responses."""
199175 request = Request (environ )
200176 response = self ._dispatch_request (request )
201- return response (environ , start_response )
177+ return_value = response (environ , start_response )
178+ if not any (i in request .full_path for i in ("monitor" , "logs" )):
179+ data = {
180+ "date" : datetime .now ().strftime ("%Y-%m-%d %H:%M:%S" ),
181+ "request" : {
182+ "method" : request .method ,
183+ "path" : request .url ,
184+ "headers" : dict (request .headers .items ()),
185+ "data" : request .data .decode ("utf-8" ),
186+ },
187+ "response" : {
188+ "headers" : dict (response .headers .items ())
189+ if hasattr (response , "headers" )
190+ else {},
191+ "data" : response .data .decode ("utf-8" )
192+ if hasattr (response , "data" )
193+ else response .description ,
194+ "status_code" : response .status_code
195+ if hasattr (response , "status_code" )
196+ else response .code ,
197+ },
198+ }
199+ logger .info (json .dumps (data ))
200+ return return_value
202201
203202 def __call__ (self , environ , start_response ):
204203 """The WSGI server calls this method as the WSGI application."""
0 commit comments