38
41
HttpResponseForbidden,
39
42
HttpResponseRedirect,
44
from django.http.request import build_request_repr
41
45
from django.utils.http import urlquote_plus
42
46
from maasserver import logger
43
47
from maasserver.exceptions import (
44
48
ExternalComponentException,
47
from maasserver.models import Config
50
53
def get_relative_path(path):
218
221
class DebuggingLoggerMiddleware:
223
log_level = logging.DEBUG
220
225
def process_request(self, request):
221
if Config.objects.get_config("request_log_debug"):
226
if logger.isEnabledFor(self.log_level):
222
227
header = " Request dump ".center(79, "#")
223
logger.info("%s\n%r\n%s", header, request, request.content)
230
"%s\n%s", header, build_request_repr(request))
224
231
return None # Allow request processing to continue unabated.
226
233
def process_response(self, request, response):
227
if Config.objects.get_config("response_log_debug"):
234
if logger.isEnabledFor(self.log_level):
228
235
header = " Response dump ".center(79, "#")
229
236
content = getattr(response, "content", "{no content}")
230
logger.info("%s\n%r\n%s", header, response, content)
238
decoded_content = content.decode('utf-8')
239
except UnicodeDecodeError:
242
"%s\n%s", header, "** non-utf-8 (binary?) content **")
246
"%s\n%s", header, decoded_content)
231
247
return response # Return response unaltered.