011- Kafka应用之Kafka与Log4j的整合

Posted BearData

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了011- Kafka应用之Kafka与Log4j的整合相关的知识,希望对你有一定的参考价值。

我们经常在项目中需要查看日志,定位问题,日志是项目开发中很重要的一块,一般我们使用log4j来输出日志,但通过log4j将日志保存到服务器的日志文件中,后续定位时需要打开文件,进行搜索,比较繁琐。目前比较成熟的日志框架ELK(Elasticsearch,Logstash,Kibana),即通过logstash搜集,然后将日志输出到Elastaicsearch中,最后通过Kibana展示出来,在这里面充分利用了Elasticsearch的文本搜索优势,我们通过关键词定位日志的位置。当然,Logstash可以替换为其他的数据采集工具,如Flume,Kafka等,只要能和Elasticsearch对接上即可。本篇我们将介绍如何将log4j的日志输出到kafka,后续篇章中我们会详细介绍Kafka+Elasticsearch+Kibana。

一. 环境准备

1. pom文件


<dependency>

<groupId>org.apache.kafka</groupId>

<artifactId>kafka-log4j-appender</artifactId>

<version>1.0.1</version>

</dependency>

<dependency>

<groupId>org.slf4j</groupId>

<artifactId>slf4j-api</artifactId>

<version>1.7.16</version>

</dependency>


2. log4j.properties配置文件


### 设置###

log4j.rootLogger=info,STDOUT,kafka,DEBUG

#
appender kafka

log4j.appender.kafka=org.apache.kafka.log4jappender.KafkaLog4jAppender

log4j.appender.kafka.topic=beardata

log4j.appender.kafka.syncSend=true

log4j.appender.kafka.brokerList=bigdata000:6667,bigdata002:6667

log4j.appender.kafka.layout=org.apache.log4j.PatternLayout

log4j.appender.kafka.layout.ConversionPattern=%d [%-5p] [%t] - [%l] %m%n

#
## 输出信息到控制抬 ###

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=[%-5p] %d{yyyy-MM-dd HH:mm:ss,SSS} method:%l%n%m%n


3. 代码


public class KafkaLog4j {

private static final Logger logger = LoggerFactory.getLogger(KafkaLog4j.class);

public static void main(String args[]) {

logger.info("hello,info");

for (int i = 0; i < 10; i++) {

logger.info("beardata---" + i);

try {

Thread.sleep(1000);

} catch (InterruptedException e) {

e.printStackTrace();

}

}

}

}


二.  验证

我们在控制台开启一个消费者,然后运行KafkaLog4j的 main函数。我们可以看到log4j输出的日志都输出到了kafka消息中。

本篇我们主要介绍了Kafka与Log4j的整合,下一篇我们将介绍Kafka与Springboot的整合。



长按二维码,关注BearData

以上是关于011- Kafka应用之Kafka与Log4j的整合的主要内容,如果未能解决你的问题,请参考以下文章

058 kafka与log4j集成

013- Kafka应用之Kafka与Spark Streaming整合

Kafka Log4j.xml 附加程序

log4j使用kafka作为输出源时死锁

kafka利用log4j输出日志到哪里

如何使用log4j在日志中打印spring kafka配置