added redirect info for gunicorn
Dieser Commit ist enthalten in:
Ursprung
a615906dcb
Commit
e46094b73a
|
@ -35,6 +35,8 @@ CONFIG_DEFAULTS = {
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
|
REDIRECT_CODES = (301, 302, 303, 307, 308)
|
||||||
|
|
||||||
|
|
||||||
class Logger(gLogger):
|
class Logger(gLogger):
|
||||||
access_log_format = "Access(%(s)s) %(r)s"
|
access_log_format = "Access(%(s)s) %(r)s"
|
||||||
|
@ -75,9 +77,7 @@ class Logger(gLogger):
|
||||||
defaults = CONFIG_DEFAULTS.copy()
|
defaults = CONFIG_DEFAULTS.copy()
|
||||||
defaults["__file__"] = cfg.logconfig
|
defaults["__file__"] = cfg.logconfig
|
||||||
defaults["here"] = os.path.dirname(cfg.logconfig)
|
defaults["here"] = os.path.dirname(cfg.logconfig)
|
||||||
fileConfig(
|
fileConfig(cfg.logconfig, defaults=defaults, disable_existing_loggers=False)
|
||||||
cfg.logconfig, defaults=defaults, disable_existing_loggers=False
|
|
||||||
)
|
|
||||||
else:
|
else:
|
||||||
msg = "Error: log config '%s' not found"
|
msg = "Error: log config '%s' not found"
|
||||||
raise RuntimeError(msg % cfg.logconfig)
|
raise RuntimeError(msg % cfg.logconfig)
|
||||||
|
@ -91,9 +91,7 @@ class Logger(gLogger):
|
||||||
level = self.access_log.warning
|
level = self.access_log.warning
|
||||||
elif resp.status_code >= 500:
|
elif resp.status_code >= 500:
|
||||||
level = self.access_log.error
|
level = self.access_log.error
|
||||||
safe_atoms = self.atoms_wrapper_class(
|
safe_atoms = self.atoms_wrapper_class(self.atoms(resp, req, environ, request_time))
|
||||||
self.atoms(resp, req, environ, request_time)
|
|
||||||
)
|
|
||||||
extra = dict(
|
extra = dict(
|
||||||
METHOD=environ.get("REQUEST_METHOD"),
|
METHOD=environ.get("REQUEST_METHOD"),
|
||||||
PATH=environ.get("PATH_INFO"),
|
PATH=environ.get("PATH_INFO"),
|
||||||
|
@ -111,7 +109,11 @@ class Logger(gLogger):
|
||||||
extra["REFERER"] = environ.get("HTTP_REFERER")
|
extra["REFERER"] = environ.get("HTTP_REFERER")
|
||||||
if environ.get("HTTP_USER_AGENT", False):
|
if environ.get("HTTP_USER_AGENT", False):
|
||||||
extra["USER_AGENT"] = environ.get("HTTP_USER_AGENT")
|
extra["USER_AGENT"] = environ.get("HTTP_USER_AGENT")
|
||||||
|
if resp.status_code in REDIRECT_CODES:
|
||||||
|
for header, value in resp.headers:
|
||||||
|
if header == "Location":
|
||||||
|
extra["LOCATION"] = value
|
||||||
|
break
|
||||||
try:
|
try:
|
||||||
level(self.access_log_format, safe_atoms, extra=extra)
|
level(self.access_log_format, safe_atoms, extra=extra)
|
||||||
except Exception:
|
except Exception:
|
||||||
|
|
Laden…
In neuem Issue referenzieren