Configure Docker Logging

log4j log levels

To change the default logging levels or add new logging levels:

  1. Change the {COMPONENT}_LOG4J_ROOT_LOGLEVEL to change rootLogger loglevel.
  2. Add or override default loggers by using {COMPONENT}_LOG4J_LOGGERS environment variable. This variable accepts the comma separated values of the logger config. For example, to override the log levels of controller and request loggers , use KAFKA_LOG4J_LOGGERS="kafka.controller=WARN,kafka.foo.bar=DEBUG".
  3. To change the logging levels for the tools, use the {COMPONENT}_LOG4J_TOOLS_ROOT_LOGLEVEL.

Replace {COMPONENT} as below for the component you are changing the log level for:

Component {COMPONENT}
ZooKeeper ZOOKEEPER
Kafka KAFKA
Confluent Control Center CONTROL_CENTER
Schema Registry SCHEMA_REGISTRY
REST Proxy KAFKA_REST
Kafka Connect CONNECT
ksqlDB KSQL

An example command to change the log level for Kafka is:

docker run -d \
  --name=kafka-log-example \
  --net=host \
  -e KAFKA_BROKER_ID=1 \
  -e KAFKA_ZOOKEEPER_CONNECT=localhost:32181/jmx \
  -e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://localhost:39092 \
  -e KAFKA_JMX_PORT=39999 \
  -e KAFKA_LOG4J_LOGGERS="kafka.controller=WARN,kafka.foo.bar=DEBUG" \
  -e KAFKA_LOG4J_ROOT_LOGLEVEL=WARN \
  -e KAFKA_TOOLS_LOG4J_LOGLEVEL=ERROR \
  -e KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR=1 \
  confluentinc/cp-kafka:6.1.15

Change log outputs

All logs are sent to stdout by default. You can change this by extending the images.