Кафка клиент Связь с использованием log4j - PullRequest
0 голосов
/ 27 сентября 2018

Я хочу отправить логин брокеру Kafka, используя log4j.Тем не менее, общие сообщения хорошо передаются, а log4j - нет.Ошибки не отображаются.

Пожалуйста, дайте мне знать, в чем проблема !!

log4j2.xml

<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="info" name="spring-boot-kafka-log" packages="com.devglan">
    <Appenders>
        <Kafka name="Kafka" topic="kafkalogger">
            <PatternLayout pattern="%date %message"/>
            <Property name="bootstrap.servers">IP1:9092,IP2:9092,IP3:9092</Property>
        </Kafka>
        <Async name="Async">
            <AppenderRef ref="Kafka"/>
        </Async>

        <Console name="stdout" target="SYSTEM_OUT">
            <PatternLayout pattern="%d{HH:mm:ss.SSS} %-5p [%-7t] %F:%L - %m%n"/>
        </Console>

    </Appenders>
    <Loggers>
        <Root level="INFO">
            <AppenderRef ref="Kafka"/>
            <AppenderRef ref="stdout"/>
        </Root>
        <Logger name="org.apache.kafka" level="WARN" />
    </Loggers>
</Configuration>

pom.xml

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.0.5.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>

<dependencies>
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter</artifactId>
    <exclusions>
        <exclusion>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-logging</artifactId>
        </exclusion>
    </exclusions>
</dependency>
<!-- https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-log4j2 -->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-log4j2</artifactId>
    <version>2.0.4.RELEASE</version>
</dependency>

<dependency>
    <groupId>org.apache.kafka</groupId>
    <artifactId>kafka-log4j-appender</artifactId>
    <version>1.0.0</version>
</dependency>

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

main.java @

SpringBootApplication
public class Elasticsearch11Application {
    public static final Logger LOG =   LoggerFactory.getLogger(Elasticsearch11Application.class.getName());

    public static void main(String[] args) throws InterruptedException {
        SpringApplication.run(Elasticsearch11Application.class, args);







           Scanner in;
         String topicName = "kafkalogger";
         in = new Scanner(System.in);
         System.out.println("Enter message(type exit to quit)");
         //Configure the Producer
         Properties configProperties = new Properties();
         configProperties.put(ProducerConfig.BOOTSTRAP_SERVERS_CONFIG,"IP1:9092,IP2:9092,IP3:9092"); 
         configProperties.put(ProducerConfig.KEY_SERIALIZER_CLASS_CONFIG,"org.apache.kafka.common.serialization.ByteArraySerializer");
         configProperties.put(ProducerConfig.VALUE_SERIALIZER_CLASS_CONFIG,"org.apache.kafka.common.serialization.StringSerializer");
         org.apache.kafka.clients.producer.Producer producer = new KafkaProducer(configProperties);
         String line = in.nextLine();
         while(!line.equals("exit")) {
         //TODO: Make sure to use the ProducerRecord constructor that does not take parition Id
         ProducerRecord<String, String> rec = new ProducerRecord<String, String>(topicName,line);
         producer.send(rec);
         line = in.nextLine();
         }
         in.close();
         producer.close();

        //it's good working code.




        LOG.info("test message:1"); // not working!
        LOG.info("test message:2"); // not working!

Это не очень хорошо работает, хотя я создал пример.

Версия брокера Kafka - 1.0.0.Версия хорошо подогнана, я проверил работу,

Странно, это не может быть сделано.Почему это?

...