Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to configure logging for Kafka producers?

Tags:

I am using Kafka producer client and i don't have any log4j configuration in my project.

On running, the program prints a lot of Kafka Debug logs which i really don't want.

So, i tried to add a log4j.properties to set log level to ERROR as below which does not seem to work:

log4j.rootLogger=ERROR

How do i change Kafka Log Level?

like image 471
nikel Avatar asked Mar 03 '16 13:03

nikel


People also ask

Can Kafka be used for logging?

Kafka is designed to ingest, process, store, and route logging data, all in real time. Once data is processed, Kafka can turn disorganized logging streams into a more understandable, easy-to-read output for IT staff to monitor.

Does Kafka use SLF4J?

Kafka uses Simple Logging Facade for Java (SLF4J) for logging.


2 Answers

Use the command line flag -Dlog4j.configuration=file:/path/to/log4j.properties when running your client.

Example log4j property files:

  • https://github.com/apache/kafka/blob/trunk/config/tools-log4j.properties
    • Used by tools like mirror maker, really just stdout
  • https://github.com/apache/kafka/blob/trunk/config/log4j.properties
    • Used by tools like kafka server

For mirror maker and other tools that result in a call to kafka-run-class.sh, you can use the env variable KAFKA_LOG4J_OPTS (set to something like -Dlog4j.configuration=file:/path/to/log4j.properties) to change the logging configuration. See: https://github.com/apache/kafka/blob/0.10.2/bin/kafka-run-class.sh#L158

Example of my log4j.properties file for mirror maker that I use for testing.

# https://github.com/apache/kafka/blob/trunk/config/tools-log4j.properties

log4j.rootLogger=DEBUG, stderr

log4j.appender.stderr=org.apache.log4j.ConsoleAppender
log4j.appender.stderr.layout=org.apache.log4j.PatternLayout
log4j.appender.stderr.layout.ConversionPattern=[%d] %p %m (%c)%n
log4j.appender.stderr.Target=System.err
like image 61
turtlemonvh Avatar answered Sep 21 '22 01:09

turtlemonvh


Try adding logging.level.org.apache.kafka: DEBUG into your clients configuration properties. I am using Springboot and this is the format. Use appropriate format for your clients program.

like image 27
sivakadi Avatar answered Sep 18 '22 01:09

sivakadi