1. 程式人生 > >kafka客戶端打印日誌

kafka客戶端打印日誌

width www log4j2 kafka sco config cli eve image

kafka 0.10.0 java客戶端使用slf4j作為日誌門面,需要我們加入具體的日誌實現依賴才能打印日誌,日誌框架:http://www.cnblogs.com/set-cookie/p/8836496.html

1 客戶端依賴jar包

使用命令

mvn dependency:tree -Dverbose

查看客戶端依賴的那些包,可以看到java客戶端只依賴了slf4j,並沒有具體的日誌實現:
技術分享圖片

運行客戶端,會打印slf4j的warn提示
技術分享圖片

2 使用log4j2

加入依賴

<dependencies>
        <dependency>
            <groupId>
junit</groupId> <artifactId>junit</artifactId> <version>3.8.1</version> <scope>test</scope> </dependency> <!-- kafka客戶端--> <dependency> <groupId>org.apache.kafka</groupId>
<artifactId>kafka-clients</artifactId> <version>0.10.0.0</version> </dependency> <!--log4j2到slf4j橋梁--> <dependency> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-slf4j-impl</artifactId>
<version>2.9.1</version> </dependency> <!--log4j2--> <dependency> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-api</artifactId> <version>2.11.0</version> </dependency> <dependency> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-core</artifactId> <version>2.11.0</version> </dependency> <!--log4j2--> </dependencies>

如果不創建log4j2.xml配置文件的話,log4j2會使用默認的配置,輸出級別是ERROR,如下:

 <?xml version="1.0" encoding="UTF-8"?>
  <Configuration status="WARN"> <!--status表示log4j2自身日誌的級別-->
    <Appenders>
      <Console name="Console" target="SYSTEM_OUT">
        <PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>
      </Console>
    </Appenders>
    <Loggers>
      <Root level="error">
             <AppenderRef ref="Console"/>
                  </Root>
   </Loggers>
 </Configuration>

為了靈活性,我們可以在resources目錄下創建log4j2.xml來自定義log4j2的打印,其實僅僅是將日誌級別從error修改為了trace

<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="WARN">
    <Appenders>
        <Console name="Console" target="SYSTEM_OUT">
            <PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>
        </Console>
    </Appenders>
    <Loggers>
        <Root level="trace"> <!--error改成trace,便於debug-->
            <AppenderRef ref="Console"/>
        </Root>
    </Loggers>
</Configuration>

再次運行, 已經打印了trace日誌
技術分享圖片

kafka客戶端打印日誌