我们可以只为 kafka 禁用 log4j 日志吗

问题描述 投票:0回答:4

我正在使用以下 log4j.properties

log4j.rootLogger=DEBUG, stdout


log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target=System.out
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n

我只想禁用 kafka 的日志消息。在哪里显示我正在记录的日志消息。

apache-kafka apache-kafka-streams
4个回答
18
投票

您需要禁用 log4j 和 slf4j 的记录器才能完全禁用 kafka 日志记录:

在资源目录中添加一个 logback.xml 文件:

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <include resource="org/springframework/boot/logging/logback/base.xml" />
    <logger name="org.springframework" level="OFF"/>
    <logger name="org.apache" level="OFF"/>
    <logger name="kafka" level="OFF"/>
</configuration>

将以下内容添加到您的application.yaml / properties

logging:
  level:
    root: OFF
    org.springframework: OFF
    org.apache: OFF
    kafka: OFF

4
投票

您需要通过添加此行将日志级别设置为

OFF

log4j.logger.org.apache.kafka=OFF

比较:如何禁用一个类或整个包的记录器?


0
投票

来自上述答案的更详细版本

*。整体::

1。
设置一个简单的 Kafka 程序(完全从头开始)

2。
添加 log4j 依赖
(使用Spring,所以没有版本)

        <dependency>
            <groupId>org.apache.logging.log4j</groupId>
            <artifactId>log4j-api</artifactId>
        </dependency>
        <dependency>
            <groupId>org.apache.logging.log4j</groupId>
            <artifactId>log4j-core</artifactId>
        </dependency>

3。
添加 logback.xml
(和上面的回答一样;好像可以注释掉一些不需要的)

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <include resource="org/springframework/boot/logging/logback/base.xml" />
<!--     <logger name="org.springframework" level="WARN"/> -->
    <logger name="org.apache" level="WARN"/>
<!--     <logger name="kafka" level="WARN"/> -->
</configuration>

*。注意::

  1. 需要添加log4j依赖

  2. 试过在application.properties

    中加入
    log4j.properties
    / src/main/resources
    ,似乎没有发挥任何作用

    所以,像这样的配置对我不起作用::

    #log4j.rootLogger=INFO, 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.logger.kafka=OFF
    #log4j.logger.org.apache.kafka=OFF
    
    #logging.level.root=OFF
    #logging.level.org.springframework=OFF
    #logging.level.org.apache=OFF
    #logging.level.kafka=OFF
    

    将它们放在不同的文件夹位置都没有用(例如:直接在项目文件夹下/里面

    src/main/java

  3. didnt 找到一个 dynamic way 添加配置。 (写在程序代码中,而不是文件中;既不在 kafka 配置中,也不在 log4j getLogger 中)

  4. 将文件放在

    src/main/resources

  5. (虽然我使用的是 Spring 框架,但我 没有使用集成的 Kafka,也没有将它作为 Spring 服务器运行——只是更像一个普通的 Java 应用程序。)

  6. (我不知道log4j上会不会有冲突(好像很久以前发生在我身上了))


-4
投票
logging:
  level:
    root: OFF
    org.springframework: OFF
    org.apache: OFF
    kafka: OFF

这个配置对我有用。

© www.soinside.com 2019 - 2024. All rights reserved.