发现logback kafka 一个大坑, 不敢想,记录一下。
如果用debug级别, 直接报错, 不能用debug级别,不能用debug级别,不能用debug级别,
Topic kafkaLog not present in metadata after 60000 ms.
2019-12-04 19:00:45.613 [http-nio-8090-exec-5] INFO org.apache.kafka.common.utils.AppInfoParser - Kafka version: 2.3.0
2019-12-04 19:00:45.613 [http-nio-8090-exec-5] INFO org.apache.kafka.common.utils.AppInfoParser - Kafka commitId: fc1aaa116b661c8a
2019-12-04 19:00:45.613 [http-nio-8090-exec-5] INFO org.apache.kafka.common.utils.AppInfoParser - Kafka startTimeMs: 1575457245607
2019-12-04 19:00:45.615 [http-nio-8090-exec-5] DEBUG org.apache.kafka.clients.producer.KafkaProducer - [Producer clientId=producer-1] Kafka producer started
2019-12-04 19:01:45.637 [kafka-producer-network-thread | producer-1] DEBUG org.apache.kafka.clients.producer.KafkaProducer - [Producer clientId=producer-1] Exception occurred during message send:
org.apache.kafka.common.errors.TimeoutException: Topic kafkaLog not present in metadata after 60000 ms.
2019-12-04 19:01:45.638 [http-nio-8090-exec-5] DEBUG org.apache.kafka.clients.producer.KafkaProducer - [Producer clientId=producer-1] Exception occurred during message send:
org.apache.kafka.common.errors.TimeoutException: Topic kafkaLog not present in metadata after 60000 ms.
2019-12-04 19:00:45.477 [http-nio-8090-exec-5] DEBUG com.cathaylife.cn.controller.TestController - this is debug info
logback.xml配置
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration>
<configuration>
<appender name="kafkalog" class="com.github.danielwegener.logback.kafka.KafkaAppender">
<encoder>
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
<charset>UTF-8</charset>
</encoder>
<topic>kafkaLog</topic>
<keyingStrategy class="com.github.danielwegener.logback.kafka.keying.NoKeyKeyingStrategy" />
<deliveryStrategy class="com.github.danielwegener.logback.kafka.delivery.AsynchronousDeliveryStrategy" />
<producerConfig>bootstrap.servers=10.20.39.122:19091</producerConfig>
</appender>
<appender name="consoleAppender" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
<charset>UTF-8</charset>
</encoder>
</appender>
<root level="DEBUG">
<appender-ref ref="kafkalog" />
<appender-ref ref="consoleAppender" />
</root>
</configuration>
maven 引入版本
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.16.22</version>
<scope>provided</scope>
</dependency>
<!-- https://mvnrepository.com/artifact/org.apache.kafka/kafka -->
<dependency>
<groupId>org.apache.kafka</groupId>
<artifactId>kafka_2.12</artifactId>
<version>2.3.0</version>
</dependency>
<dependency>
<groupId>com.github.danielwegener</groupId>
<artifactId>logback-kafka-appender</artifactId>
<version>0.2.0-RC2</version>
<exclusions>
<exclusion>
<groupId>org.apache.kafka</groupId>
<artifactId>kafka-clients</artifactId>
</exclusion>
</exclusions>
</dependency>
<!-- https://mvnrepository.com/artifact/org.apache.kafka/kafka-clients -->
<!--如果不是spring cloud项目,需要加logback依赖-->
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<version>1.2.3</version>
</dependency>
<dependency>
<groupId>org.apache.kafka</groupId>
<artifactId>kafka-clients</artifactId>
<version>2.3.0</version>
</dependency>