Logging
This document gives an overview of logging provided by NGINX Ingress Controller.
NGINX Ingress Controller exposes the logs of the Ingress Controller process (the process that generates NGINX configuration and reloads NGINX to apply it) and NGINX access and error logs. All logs are sent to the standard output and error of the NGINX Ingress Controller process. To view the logs, you can execute the kubectl logs
command for an Ingress Controller pod. For example:
kubectl logs <nginx-ingress-pod> -n nginx-ingress
NGINX Ingress Controller Process Logs
The NGINX Ingress Controller process logs are configured through the -log-level
command-line argument of the NGINX Ingress Controller, which sets the log level. The default value is info
. Other options include: trace
, debug
, info
, warning
, error
and fatal
. The value debug
is useful for troubleshooting: you will be able to see how NGINX Ingress Controller gets updates from the Kubernetes API, generates NGINX configuration and reloads NGINX.
See also the doc about NGINX Ingress Controller command-line arguments.
NGINX Logs
The NGINX includes two logs:
- Access log, where NGINX writes information about client requests in the access log right after the request is processed. The access log is configured via the logging-related ConfigMap keys:
-
log-format
for HTTP and HTTPS traffic. -
stream-log-format
for TCP, UDP, and TLS Passthrough traffic.Additionally, you can disable access logging with the
access-log-off
ConfigMap key.
-
- Error log, where NGINX writes information about encountered issues of different severity levels. It is configured via the
error-log-level
ConfigMap key. To enable debug logging, set the level todebug
and also set the-nginx-debug
command-line argument, so that NGINX is started with the debug binarynginx-debug
.
See also the doc about NGINX logs from NGINX Admin guide.