Handle string status codes in logging

Observed on "too many database connections" the following error in the
log:

Error formatting log line msg=u'*(url)s returned with HTTP *(status)d'
    err=TypeError('*d format: a number is required, not str',)

This was due to the format string using %d where somehow the result code
was actually a string. Since formatting numbers works with %s, and is
actually sometimes more performant, this just switches %d to %s to be
more flexible.

Change-Id: I52d6fb46c5ab0f2fa24c629697daaf39d35584c3
Signed-off-by: Sean McGinnis <sean.mcginnis@gmail.com>
This commit is contained in:
Sean McGinnis 2018-12-21 10:41:57 -06:00
parent ea844fbee8
commit 6b863310e5
No known key found for this signature in database
GPG Key ID: CE7EE4BFAF8D70C8
2 changed files with 2 additions and 2 deletions

View File

@ -60,7 +60,7 @@ class FaultWrapper(base_wsgi.Middleware):
status = http_client.INTERNAL_SERVER_ERROR
msg_dict = dict(url=req.url, status=status)
LOG.info("%(url)s returned with HTTP %(status)d", msg_dict)
LOG.info("%(url)s returned with HTTP %(status)s", msg_dict)
outer = self.status_to_type(status)
if headers:
outer.headers = headers

View File

@ -936,7 +936,7 @@ class Resource(wsgi.Application):
try:
msg_dict = dict(url=request.url, status=response.status_int)
msg = "%(url)s returned with HTTP %(status)d"
msg = "%(url)s returned with HTTP %(status)s"
except AttributeError as e:
msg_dict = dict(url=request.url, e=e)
msg = "%(url)s returned a fault: %(e)s"