如何使用log4j启用Kafka日志记录

Mar*_*low 6 java log4j slf4j apache-kafka

我用maven下载了kafka-clients-0.9.0.0.jar,我希望我会看到像这样的链接中的日志记录Kafka Logging

但是我不知道为什么我没有得到任何记录,即使我在purpuse上错误地设置了bootstrap.servers,但它只是被卡住而没有发出任何警告.我添加了几行代码,使用log4j打印到文件中,看起来很有效,但不知道为什么Kafka无法将事件记录到log4j.

import org.apache.log4j.Logger;
public class ConsumerLoop implements Runnable {
    final static Logger logger = Logger.getLogger(ConsumerLoop.class);

    @Override
    public void run() {

        logger.warn("running!!!!!");
        }
}


SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
SLF4J: Defaulting to no-operation (NOP) logger implementation
SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.
2016-04-04 12:54:01 WARN  ConsumerLoop:40 - running!!!!!
Run Code Online (Sandbox Code Playgroud)

注意,有一个slf4j-api-1.7.6.jar作为kafka的依赖.即使我包括所需的库slf4j-api-xxxjar,slf4j-log4jx-xxxjar并使用slf4j记录甚至但仍然无法获取kafka日志.

小智 7

这是一个老问题,但仍然有人可能受益。

只需将 log4j.properties 与数据放在 /src/main/resources 下

log4j.rootLogger=TRACE, stdout    
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=[%d] %p %m (%c)%n

#log4j.appender.fileAppender=org.apache.log4j.FileAppender
#log4j.appender.fileAppender.File=kafka-request.log
#log4j.appender.fileAppender.layout=org.apache.log4j.PatternLayout
#log4j.appender.fileAppender.layout.ConversionPattern= %-4r [%t] %-5p %c %x - %m%n


# Turn on all our debugging info
log4j.logger.kafka=TRACE,stdout
#log4j.logger.kafka.producer.async.DefaultEventHandler=DEBUG,stdout
#log4j.logger.kafka.consumer.PartitionTopicInfo=TRACE,stdout
#log4j.logger.kafka.request.logger=TRACE,fileAppender
#log4j.additivity.kafka.request.logger=false
#log4j.logger.kafka.network.Processor=TRACE,fileAppender
#log4j.additivity.kafka.network.Processor=false
#log4j.logger.org.I0Itec.zkclient.ZkClient=DEBUG
Run Code Online (Sandbox Code Playgroud)

并添加依赖

<dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>slf4j-log4j12</artifactId>
    <version>1.7.5</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)

然后就可以在控制台看到日志了。