Logging

Hypercorn has two loggers, an access logger and an error logger. By default neither will actively log. The special value of - can be used as the logging target in order to log to stdout and stderr respectively. Any other value is considered a filepath to target.

Configuring access logs

The access log format can be configured by specifying the atoms (see below) to include in a specific format. By default hypercorn will choose %(h)s %(S)s %(r)s %(s)s %(b)s %(D)s as the format. The configuration variable access_log_format specifies the format used.

Access log atoms

The following atoms, a superset of those in Gunicorn, are available for use.

Identifier Description
h remote address
l '-'
u user name
t date of the request
r status line (e.g. GET / h11)
m request method
U URL path without query string
q query string
H protocol
s status
S scheme {http, https, ws, wss}
B response length
b response length or '-' (CLF format)
f referer
a user agent
T request time in seconds
D request time in microseconds
L request time in decimal seconds
p process ID
{Header}i request header
{Header}o response header
{Variable}e environment variable

Customising the access logger

The acces logger class can be customised by changing the access_logger_class attribute of the Config class. This is only possible when using the python based configuration file. The hypercorn.logging.AccessLogger class is used by default.