当前位置: 首页 > 知识库问答 >
问题:

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

吴欣然
2023-03-14

我下载了kafka-clients-0.9.0.0。jar与maven一起使用,我希望我会看到类似于Kafka日志链接中的日志记录

然而,我不知道为什么我没有得到任何日志记录,即使我设置了引导。purpuse上的服务器错误,但它只是在没有发出任何警告的情况下被卡住了。我添加了几行代码以使用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!!!!!

请注意,slf4j-api-1.7.6.jar是作为Kafka的依赖而来的。甚至我包括所需的库slf4j-api-x.x.x.jar,slf4j-log4jx-x.x.x.jar和使用slf4j甚至日志,但仍然无法获得kafka日志

共有1个答案

阙奇思
2023-03-14

这是一个老生常谈的问题,但仍有人可能从中受益。

把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

并添加依赖项

<dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>slf4j-log4j12</artifactId>
    <version>1.7.5</version>
</dependency>

然后您可以在控制台中看到日志。

 类似资料:
  • 本文向大家介绍在Spring Boot中如何使用log4j记录日志,包括了在Spring Boot中如何使用log4j记录日志的使用技巧和注意事项,需要的朋友参考一下 前言 Spring Boot在所有内部日志中使用Commons Logging,但是默认配置也提供了对常用日志的支持,如:Java Util Logging,Log4J, Log4J2和Logback。每种Logger都可以通过配置

  • 我想调试ffmpeg。我添加以下代码来打印日志: 或 但它不能工作。没有任何调试信息。 然后启用调试生成选项: 它不能工作。 我确信我添加跟踪的地方会被执行。 我只想打印一些简单的信息,怎么做?

  • 我将spring boot配置为使用log4j和pom.xml中的这些行:

  • 我现在的问题是,如果我想完全禁用FileAppender,我不知道怎么做。如果我向FileAppender添加一个DenyAllFilter,它将阻止任何内容写入文件,但文件仍然被创建。如果从根记录器中删除FileAppender,则将Log4J写入stderr: 如果我将根级别设置为OFF,则我将自定义调试级别设置为仍然输出的各个记录器。 如果我将LoggerRepository级别设置为OFF

  • 问题内容: 我正在使用的Web应用程序偶尔会为某些用户带来数据完整性问题。我想打开跟踪级别的日志记录,但是由于我们每秒要处理100个请求,因此每个日志记录都是不可能的。 log4j是否可以有条件地记录日志?换句话说,我希望仅在特定用户发出请求时才能获得跟踪日志。由于我事先不知道哪些用户会受到影响,因此我无法简单地临时对用户名进行硬编码。 编辑: 我想我需要更清楚一点。我可以轻松地在日志语句中添加条