Fix logging issues with the controller

This commit is contained in:
Julien Duponchelle
2016-03-04 16:55:59 +01:00
parent 4d77b2918e
commit 0532b4de8a
5 changed files with 11 additions and 9 deletions

View File

@ -17,6 +17,7 @@
import json
import jsonschema
import asyncio
import aiohttp.web
import logging
import sys
@ -32,7 +33,6 @@ renderer = jinja2.Environment(loader=jinja2.FileSystemLoader(get_resource('templ
class Response(aiohttp.web.Response):
def __init__(self, request=None, route=None, output_schema=None, headers={}, **kwargs):
self._route = route
self._output_schema = output_schema
self._request = request
@ -41,7 +41,8 @@ class Response(aiohttp.web.Response):
headers['Server'] = "Python/{0[0]}.{0[1]} GNS3/{1}".format(sys.version_info, __version__)
super().__init__(headers=headers, **kwargs)
def start(self, request):
@asyncio.coroutine
def prepare(self, request):
if log.getEffectiveLevel() == logging.DEBUG:
log.info("%s %s", request.method, request.path_qs)
log.debug("%s", dict(request.headers))
@ -51,7 +52,7 @@ class Response(aiohttp.web.Response):
log.debug(dict(self.headers))
if hasattr(self, 'body') and self.body is not None and self.headers["CONTENT-TYPE"] == "application/json":
log.debug(json.loads(self.body.decode('utf-8')))
return super().start(request)
return (yield from super().prepare(request))
def html(self, answer):
"""