springboot集成kafka,log4j2,实现日志监听功能

springboot集成kafka,log4j2,实现日志监听功能

  1. 下载安装zk和kafka
  2. 启动zk: 进入cmd,输入zkServer (zk需先设置系统变量)在这里插入图片描述
    3 启动kafka : 进入kafka安装目录,输入命令 :在这里插入图片描述
    4 创建springboot项目,加入kafka 依赖和log4j2 依赖。

<dependencies>
    <!--spring-boot-starter-web-->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
        <exclusions>
            <exclusion>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-logging</artifactId>
            </exclusion>
        </exclusions>
    </dependency>

    <!--log4j2-->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-log4j2</artifactId>
    </dependency>


    <!--kafka-->
    <dependency>
        <groupId>org.springframework.kafka</groupId>
        <artifactId>spring-kafka</artifactId>
        <exclusions> <!-- exclude掉过时的log依赖 -->
            <exclusion>
                <groupId>org.slf4j</groupId>
                <artifactId>slf4j-log4j12</artifactId>
            </exclusion>
            <exclusion>
                <groupId>log4j</groupId>
                <artifactId>log4j</artifactId>
            </exclusion>
        </exclusions>
    </dependency>

    <!--lombok-->
    <dependency>
        <groupId>org.projectlombok</groupId>
        <artifactId>lombok</artifactId>
        <optional>true</optional>
    </dependency>

    <!--spring-boot-starter-test-->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-test</artifactId>
        <scope>test</scope>
    </dependency>

    <!--fastjson-->
    <dependency>
        <groupId>com.alibaba</groupId>
        <artifactId>fastjson</artifactId>
        <version>1.2.72</version>
    </dependency>

</dependencies>

5.在resources目录下添加log4j2.xml 配置文件

<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="WARN">
    <Appenders>
        <Console name="Console" target="SYSTEM_OUT">
            <PatternLayout>
                <pattern>%-d{yyyy-MM-dd HH:mm:ss} [%c]-[%p] - %m%n</pattern>
            </PatternLayout>
        </Console>
        <Kafka name="Kafka" topic="kafkaLogTest">
            <PatternLayout pattern=" %d{yyyy-MM-dd HH:mm:ss.SSS} [%-5level] [%t] %X{requestID} %c{1} - %msg%n" />
            <Property name="bootstrap.servers">localhost:9092</Property>
        </Kafka>
    </Appenders>
    <Loggers>
        <root level="info">
            <AppenderRef ref="Console"/>
            <AppenderRef ref="Kafka"  />
        </root>
    </Loggers>
</Configuration>

6.在application.xml中添加kafka 配置和log4j2配置

server:
  port: 8082

spring:
  kafka:
    bootstrap-servers: localhost:9092
    producer: #生产者
      key-serializer: org.apache.kafka.common.serialization.StringSerializer
      value-serializer: org.apache.kafka.common.serialization.StringSerializer
    consumer: #消费者
      group-id: test #设置消费者的组id
      auto-commit-interval: 1000
      key-deserializer: org.apache.kafka.common.serialization.StringDeserializer
      value-deserializer: org.apache.kafka.common.serialization.StringDeserializer

logging:
  config: classpath:log4j2.xml

7.实现日志监听,日志消息topic 在log4j2.xml文件中已配置

public void sendMsg() {
   log.info("日志消息00000000000000");
}
 //kafka 日志监听
 @KafkaListener(topics = "kafkaLogTest")
 public void listen1(ConsumerRecord<?, ?> record) {
     System.out.printf(record.topic()+"----"+record.value()+"\n");
 }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值