我正在使用Log4j2将日志从Spring Boot应用程序推送到Kafka。从我的研究中可以看出,AVRO消息格式是向Kafka发送消息的有效方法。 但是,当我检查“ org / apache / kafka / log4jappender / KafkaLog4jAppender.java”时,我看到它正在使用ByteArraySerializer。
private static final String KEY_SERIALIZER_CLASS_CONFIG = ProducerConfig.KEY_SERIALIZER_CLASS_CONFIG;
private static final String VALUE_SERIALIZER_CLASS_CONFIG = ProducerConfig.VALUE_SERIALIZER_CLASS_CONFIG
props.put(KEY_SERIALIZER_CLASS_CONFIG, "org.apache.kafka.common.serialization.ByteArraySerializer");
props.put(VALUE_SERIALIZER_CLASS_CONFIG, "org.apache.kafka.common.serialization.ByteArraySerializer");
this.producer = getKafkaProducer(props);
还有另一个类“ org / apache / logging / log4j / core / appender / mom / kafka / KafkaAppender.java”
看起来像这样的人支持Avro串行器。以下链接有一个log4j2 Kafka Appender的示例,但是有一个问题要问但没有得到回答。请您看看,让我知道这是正确的方法。
谢谢您的帮助。