added redirect info for gunicorn

Dieser Commit ist enthalten in:
Sebastian Tobie 2024-03-10 01:06:01 +01:00
Ursprung a615906dcb
Commit e46094b73a
1 geänderte Dateien mit 9 neuen und 7 gelöschten Zeilen

Datei anzeigen

@ -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: