Configure logging drivers

Each Docker daemon has a default logging driver, which each container uses
unless you configure it to use a different logging driver.

In addition to using the logging drivers included with Docker, you can also
implement and use logging driver plugins.
Logging driver plugins are available in Docker 17.05 and higher.

Configure the default logging driver

To configure the Docker daemon to default to a specific logging driver, set the
value of log-driver to the name of the logging driver in the daemon.json
file, which is located in /etc/docker/ on Linux hosts or
C:\ProgramData\docker\config\ on Windows server hosts. The default logging
driver is json-file. The following example explicitly sets the default
logging driver to syslog:

{"log-driver":"syslog"}

If the logging driver has configurable options, you can set them in the
daemon.json file as a JSON array with the key log-opts. The following
example sets two configurable options on the json-file logging driver:

If you do not specify a logging driver, the default is json-file. Thus,
the default output for commands such as docker inspect <CONTAINER> is JSON.

To find the current default logging driver for the Docker daemon, run
docker info and search for Logging Driver. You can use the following
command on Linux, macOS, or PowerShell on Windows:

$ docker info |grep 'Logging Driver'
Logging Driver: json-file

Configure the logging driver for a container

When you start a container, you can configure it to use a different logging
driver than the Docker daemon’s default, using the --log-driver flag. If the
logging driver has configurable options, you can set them using one or more
instances of the --log-opt <NAME>=<VALUE> flag. Even if the container uses the
default logging driver, it can use different configurable options.

The following example starts an Alpine container with the none logging driver.

$ docker run -it--log-driver none alpine ash

To find the current logging driver for a running container, if the daemon
is using the json-file logging driver, run the following docker inspect
command, substituting the container name or ID for <CONTAINER>:

Use environment variables or labels with logging drivers

Some logging drivers add the value of a container’s --env|-e or --label
flags to the container’s logs. This example starts a container using the Docker
daemon’s default logging driver (let’s assume json-file) but sets the
environment variable os=ubuntu.