mirror of
https://github.com/frappe/gunicorn.git
synced 2026-01-14 11:09:11 +08:00
improve logger overide
- add Logger.atoms() that facilitates log format override. - add Logger.atoms_wrapper_class that permits custom wrapping. fix #510
This commit is contained in:
parent
87474ffce1
commit
1911facf1a
@ -202,6 +202,8 @@ class Logger(object):
|
||||
access_fmt = "%(message)s"
|
||||
syslog_fmt = "[%(process)d] %(message)s"
|
||||
|
||||
atoms_wrapper_class = SafeAtoms
|
||||
|
||||
def __init__(self, cfg):
|
||||
self.error_log = logging.getLogger("gunicorn.error")
|
||||
self.access_log = logging.getLogger("gunicorn.access")
|
||||
@ -264,14 +266,9 @@ class Logger(object):
|
||||
lvl = self.LOG_LEVELS.get(lvl.lower(), logging.INFO)
|
||||
self.error_log.log(lvl, msg, *args, **kwargs)
|
||||
|
||||
def access(self, resp, req, environ, request_time):
|
||||
""" Seee http://httpd.apache.org/docs/2.0/logs.html#combined
|
||||
for format details
|
||||
def atoms(self, resp, req, environ, request_time):
|
||||
""" Gets atoms for log formating.
|
||||
"""
|
||||
|
||||
if not self.cfg.accesslog and not self.cfg.logconfig:
|
||||
return
|
||||
|
||||
status = resp.status.split(None, 1)[0]
|
||||
atoms = {
|
||||
'h': environ.get('REMOTE_ADDR', '-'),
|
||||
@ -300,10 +297,21 @@ class Logger(object):
|
||||
# add response headers
|
||||
atoms.update(dict([("{%s}o" % k.lower(), v) for k, v in resp.headers]))
|
||||
|
||||
return atoms
|
||||
|
||||
def access(self, resp, req, environ, request_time):
|
||||
""" See http://httpd.apache.org/docs/2.0/logs.html#combined
|
||||
for format details
|
||||
"""
|
||||
|
||||
if not self.cfg.accesslog and not self.cfg.logconfig:
|
||||
return
|
||||
|
||||
# wrap atoms:
|
||||
# - make sure atoms will be test case insensitively
|
||||
# - if atom doesn't exist replace it by '-'
|
||||
safe_atoms = SafeAtoms(atoms)
|
||||
safe_atoms = self.atoms_wrapper_class(self.atoms(resp, req, environ,
|
||||
request_time))
|
||||
|
||||
try:
|
||||
self.access_log.info(self.cfg.access_log_format % safe_atoms)
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user