Logging¶
-
class
uwsgiconf.options.logging.
Var
(name: str)¶
-
class
uwsgiconf.options.logging.
VarMetric
(name: str)¶
-
class
uwsgiconf.options.logging.
VarRequestVar
(name)¶
-
class
uwsgiconf.options.logging.
Logging
(*args, **kwargs)¶ Logging.
- http://uwsgi.readthedocs.io/en/latest/Logging.html
- http://uwsgi-docs.readthedocs.io/en/latest/LogFormat.html
-
class
loggers
¶ Loggers available for
add_logger()
.-
file
¶
-
stdio
¶
-
mongo
¶
-
redis
¶
-
socket
¶
-
syslog
¶
-
rsyslog
¶
-
zeromq
¶
-
-
class
encoders
¶ Loggers available for
add_logger_encoder()
.-
compress
¶
-
format
¶
-
gzip
¶
-
json
¶
-
newline
¶
-
prefix
¶
-
suffix
¶
-
-
set_basic_params
(*, no_requests=None, template=None, memory_report=None, prefix=None, prefix_date=None, apply_strftime=None, response_ms=None, ip_x_forwarded=None)¶ Parameters: - no_requests (bool) – Disable requests logging - only uWSGI internal messages and errors will be logged.
- template (str) – Set advanced format for request logging.
This template string can use variables from
Logging.Vars
. - prefix (str) – Prefix log items with a string.
- prefix_date (str|bool) –
Prefix log items with date string.
Note
This can be
True
or contain formatting placeholders (e.g. %Y-%m-%d %H:%M:%S) if used withapply_strftime
. - memory_report (int) – Enable memory report. * 1 - basic (default); * 2 - uss/pss (Linux only)
- apply_strftime (bool) – Apply strftime to dates in log entries.
E.g.
prefix_date
can contain format placeholders. See alsovars.REQ_START_FORMATTED
. - response_ms (bool) – Report response time in microseconds instead of milliseconds.
- ip_x_forwarded (bool) – Use the IP from X-Forwarded-For header instead of REMOTE_ADDR. Used when uWSGI is run behind multiple proxies.
-
log_into
(target, *, before_priv_drop=True)¶ Simple file or UDP logging.
Note
This doesn’t require any Logger plugin and can be used if no log routing is required.
Parameters: - target (str) – Filepath or UDP address.
- before_priv_drop (bool) – Whether to log data before or after privileges drop.
-
set_file_params
(*, reopen_on_reload=None, trucate_on_statup=None, max_size=None, rotation_fname=None, touch_reopen=None, touch_rotate=None, owner=None, mode=None)¶ Set various parameters related to file logging.
Parameters: - reopen_on_reload (bool) – Reopen log after reload.
- trucate_on_statup (bool) – Truncate log on startup.
- max_size (int) – Set maximum logfile size in bytes after which log should be rotated.
- rotation_fname (str) – Set log file name after rotation.
- touch_reopen (str|list) –
Trigger log reopen if the specified file is modified/touched.
Note
This can be set to a file touched by
postrotate
script oflogrotate
to implement rotation. - touch_rotate (str|list) – Trigger log rotation if the specified file is modified/touched.
- owner (str) – Set owner chown() for logs.
- mode (str) – Set mode chmod() for logs.
-
set_filters
(*, include=None, exclude=None, write_errors=None, write_errors_tolerance=None, sigpipe=None)¶ Set various log data filters.
Parameters: - include (str|list) –
Show only log lines matching the specified regexp.
Note
Requires enabled PCRE support.
- exclude (str|list) –
Do not show log lines matching the specified regexp.
Note
Requires enabled PCRE support.
- write_errors (bool) –
Log (annoying) write()/writev() errors. Default:
True
.Note
If both this and
sigpipe
set toFalse
, it’s the same as settingwrite-errors-exception-only
uWSGI option. - write_errors_tolerance (int) –
Set the maximum number of allowed write errors before exception is raised. Default: no tolerance.
Note
Available for Python, Perl, PHP.
- sigpipe (bool) –
Log (annoying) SIGPIPE. Default:
True
.Note
If both this and
write_errors
set toFalse
, it’s the same as settingwrite-errors-exception-only
uWSGI option.
- include (str|list) –
-
set_requests_filters
(*, slower=None, bigger=None, status_4xx=None, status_5xx=None, no_body=None, sendfile=None, io_errors=None)¶ Set various log data filters.
Parameters: - slower (int) – Log requests slower than the specified number of milliseconds.
- bigger (int) – Log requests bigger than the specified size in bytes.
- status_4xx – Log requests with a 4xx response.
- status_5xx – Log requests with a 5xx response.
- no_body (bool) – Log responses without body.
- sendfile (bool) – Log sendfile requests.
- io_errors (bool) – Log requests with io errors.
-
set_master_logging_params
(enable=None, *, dedicate_thread=None, buffer=None, sock_stream=None, sock_stream_requests_only=None)¶ Sets logging params for delegating logging to master process.
Parameters: - enable (bool) – Delegate logging to master process. Delegate the write of the logs to the master process (this will put all of the logging I/O to a single process). Useful for system with advanced I/O schedulers/elevators.
- dedicate_thread (bool) –
Delegate log writing to a thread.
As error situations could cause the master to block while writing a log line to a remote server, it may be a good idea to use this option and delegate writes to a secondary thread.
- buffer (int) – Set the buffer size for the master logger in bytes. Bigger log messages will be truncated.
- sock_stream (bool|tuple) – Create the master logpipe as SOCK_STREAM.
- sock_stream_requests_only (bool|tuple) – Create the master requests logpipe as SOCK_STREAM.
-
print_loggers
()¶ Print out available (built) loggers.
-
add_logger
(logger, *, requests_only=False, for_single_worker=False)¶ Set/add a common logger or a request requests only.
Parameters: - logger (str|list|Logger|list[Logger]) –
- requests_only (bool) – Logger used only for requests information messages.
- for_single_worker (bool) – Logger to be used in single-worker setup.
-
add_logger_route
(logger, matcher, *, requests_only=False)¶ Log to the specified named logger if regexp applied on log item matches.
Parameters: - logger (str|list|Logger|list[Logger]) – Logger to associate route with.
- matcher (str) – Regular expression to apply to log item.
- requests_only (bool) – Matching should be used only for requests information messages.
-
add_logger_encoder
(encoder, *, logger=None, requests_only=False, for_single_worker=False)¶ Add an item in the log encoder or request encoder chain.
http://uwsgi-docs.readthedocs.io/en/latest/LogEncoders.html
Note
Encoders automatically enable master log handling (see
.set_master_logging_params()
).Note
For best performance consider allocating a thread for log sending with
dedicate_thread
.
Parameters: - encoder (str|list|Encoder) – Encoder (or a list) to add into processing.
- logger (str|Logger) – Logger apply associate encoders to.
- requests_only (bool) – Encoder to be used only for requests information messages.
- for_single_worker (bool) – Encoder to be used in single-worker setup.
-
class
vars
¶ Variables available for custom log formatting.
-
REQ_URI
= '%(uri)'¶ REQUEST_URI from
wsgi_request
of the current request.
-
REQ_METHOD
= '%(method)'¶ REQUEST_METHOD from
wsgi_request
of the current request.
-
REQ_REMOTE_USER
= '%(user)'¶ REMOTE_USER from
wsgi_request
of the current request.
-
REQ_REMOTE_ADDR
= '%(addr)'¶ REMOTE_ADDR from
wsgi_request
of the current request.
-
REQ_HTTP_HOST
= '%(host)'¶ HTTP_HOST from
wsgi_request
of the current request.
-
REQ_SERVER_PROTOCOL
= '%(proto)'¶ SERVER_PROTOCOL from
wsgi_request
of the current request.
-
REQ_USER_AGENT
= '%(uagent)'¶ HTTP_USER_AGENT from
wsgi_request
of the current request.
-
REQ_REFERER
= '%(referer)'¶ HTTP_REFERER from
wsgi_request
of the current request.
-
REQ_START_TS
= '%(time)'¶ Timestamp of the start of the request. E.g.: 1512623650
-
REQ_START_CTIME
= '%(ctime)'¶ Ctime of the start of the request. E.g.: Thu Dec 7 08:05:35 2017
-
REQ_START_UNIX_US
= '%(tmsecs)'¶ Timestamp of the start of the request in milliseconds since the epoch.
Note
since 1.9.21
-
REQ_START_UNIX_MS
= '%(tmicros)'¶ Timestamp of the start of the request in microseconds since the epoch.
Note
since 1.9.21
-
REQ_START_HUMAN
= '%(ltime)'¶ Human-formatted (Apache style) request time.
-
REQ_START_FORMATTED
= '%(ftime)'¶ Request time formatted with
apply_strftime
.Note
Use
apply_strftime
and placeholders.
-
REQ_SIZE_BODY
= '%(cl)'¶ Request content body size.
-
REQ_COUNT_VARS_CGI
= '%(vars)'¶ Number of CGI vars in the request.
-
REQ_COUNT_ERR_READ
= '%(rerr)'¶ Number of read errors for the request.
Note
since 1.9.21
-
REQ_COUNT_ERR_WRITE
= '%(werr)'¶ Number of write errors for the request.
Note
since 1.9.21
-
REQ_COUNT_ERR
= '%(ioerr)'¶ Number of write and read errors for the request.
Note
since 1.9.21
-
RESP_STATUS
= '%(status)'¶ HTTP response status code.
-
RESP_TIME_US
= '%(micros)'¶ Response time in microseconds. E.g.: 1512623650704
-
RESP_TIME_MS
= '%(msecs)'¶ Response time in milliseconds. E.g.: 1512623650704413
-
RESP_SIZE
= '%(size)'¶ Response body size + response headers size.
-
RESP_SIZE_HEADERS
= '%(hsize)'¶ Response headers size.
-
RESP_SIZE_BODY
= '%(rsize)'¶ Response body size.
-
RESP_COUNT_HEADERS
= '%(headers)'¶ Number of generated response headers.
-
TIME_UNIX
= '%(epoch)'¶ The current time in Unix format.
-
WORKER_PID
= '%(pid)'¶ pid of the worker handling the request.
-
WORKER_ID
= '%(wid)'¶ id of the worker handling the request.
-
ASYNC_SWITCHES
= '%(switches)'¶ Number of async switches.
-
CORE
= '%(core)'¶ The core running the request.
-
MEM_VSZ
= '%(vsz)'¶ Address space/virtual memory usage (in bytes).
-
MEM_RSS
= '%(rss)'¶ RSS memory usage (in bytes).
-
MEM_VSZ_MB
= '%(vszM)'¶ Address space/virtual memory usage (in megabytes).
-
MEM_RSS_MV
= '%(rssM)'¶ RSS memory usage (in megabytes).
-
SIZE_PACKET_UWSGI
= '%(pktsize)'¶ Size of the internal request uwsgi packet.
-
MOD1
= '%(modifier1)'¶ modifier1
of the request. See.routing.modifiers
.
-
MOD2
= '%(modifier2)'¶ modifier2
of the request. See.routing.modifiers
.
-
request_var
¶ Request variable value.
alias of
VarRequestVar
-