1.首先在resources下面写log4j.properties
主要是因为kafka.producer.KafkaLog4jAppender类的存在。
log4j.rootLogger=INFO,console,KAFKA ## appender KAFKA
log4j.appender.KAFKA=kafka.producer.KafkaLog4jAppender
## topic must exitss
log4j.appender.KAFKA.topic=beifeng
log4j.appender.KAFKA.brokerList=linux-hadoop01.ibeifeng.com:9092,linux-hadoop01.ibeifeng.com:9093
log4j.appender.KAFKA.compressionType=none
log4j.appender.KAFKA.syncSend=false
log4j.appender.KAFKA.layout=org.apache.log4j.PatternLayout
log4j.appender.KAFKA.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L %% - %m ## appender console
log4j.appender.console=org.apache.log4j.ConsoleAppender
log4j.appender.console.layout=org.apache.log4j.PatternLayout
log4j.appender.console.layout.ConversionPattern=%d (%t) [%p - %l] %m%n
2.测试类
package com.jun.it; import org.apache.log4j.Logger; public class KafkaLoggerTest {
public static final Logger logger = Logger.getLogger(KafkaLoggerTest.class); public static void main(String[] args) throws InterruptedException {
for(int i=0;i<50;i++) {
logger.debug("debug_" + i);
logger.info("info_" + i);
logger.warn("warn_" + i);
logger.error("error_" + i);
logger.fatal("fatal_" + i);
} // 如果不sleep,会出现什么情况?怎么解决
Thread.sleep(10000);
}
}
3.开启9092端口的消费者服务
bin/kafka-console-consumer.sh --topic beifeng --zookeeper linux-hadoop01.ibeifeng.com:2181/kafka
4.效果