logs

Getting logs for Kubernetes resources

Print the logs for a container in a pod or specified resource. If the pod has only one container, the container name is optional.

Command

$ kubectl logs [-f] [-p] (POD | TYPE/NAME) [-c CONTAINER]

Example

Current State

$ kubectl get deployments

NAME    READY   UP-TO-DATE   AVAILABLE   AGE
nginx   1/1     1            1           13m

Command

$ kubectl logs deployment/nginx

Output

/docker-entrypoint.sh: /docker-entrypoint.d/ is not empty, will attempt to perform configuration
/docker-entrypoint.sh: Looking for shell scripts in /docker-entrypoint.d/
/docker-entrypoint.sh: Launching /docker-entrypoint.d/10-listen-on-ipv6-by-default.sh
10-listen-on-ipv6-by-default.sh: Getting the checksum of /etc/nginx/conf.d/default.conf
10-listen-on-ipv6-by-default.sh: Enabled listen on IPv6 in /etc/nginx/conf.d/default.conf
/docker-entrypoint.sh: Launching /docker-entrypoint.d/20-envsubst-on-templates.sh
/docker-entrypoint.sh: Configuration complete; ready for start up

Print the logs for a Pod running a single Container

kubectl logs echo-c6bc8ccff-nnj52
hello
hello

Print the logs for all Pods for a Workload

# Print logs from all containers matching label
kubectl logs -l app=nginx

Follow Logs for a Container

Stream logs from a container.

# Follow logs from container
kubectl logs nginx-78f5d695bd-czm8z -f

Printing Logs for a Container that has exited

Print the logs for the previously running container. This is useful for printing containers that have crashed or are crash looping.

# Print logs from exited container
kubectl logs nginx-78f5d695bd-czm8z -p

Selecting a Container in a Pod

Print the logs from a specific container within a Pod. This is necessary for Pods running multiple containers.

# Print logs from the nginx container in the nginx-78f5d695bd-czm8z Pod
kubectl logs nginx-78f5d695bd-czm8z -c nginx

Printing Logs After a Time

Print the logs that occurred after an absolute time.

# Print logs since a date
kubectl logs nginx-78f5d695bd-czm8z --since-time=2018-11-01T15:00:00Z

Printing Logs Since a Time

Print the logs that are newer than a duration.

Examples:

  • 0s: 0 seconds
  • 1m: 1 minute
  • 2h: 2 hours
# Print logs for the past hour
kubectl logs nginx-78f5d695bd-czm8z --since=1h

Include Timestamps

Include timestamps in the log lines

# Print logs with timestamps
kubectl logs -l app=echo --timestamps
2018-11-16T05:26:31.38898405Z hello
2018-11-16T05:27:13.363932497Z hello


Last modified September 23, 2020: docs update (b46eb86)