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
加入依賴
<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 begin-->
<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 end-->
如果不創建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日志