Am instalat o versiune de previzualizare a Kafka 3.0 cu suport log4j2 (http://home.apache.org/~dongjin/post/apache-kafka-log4j2-support/) pe un server RHEL 8. Kafka și Zookeeper rulează cu succes ca servicii pentru utilizatori systemd. Am setat variabila de mediu KAFKA_LOG4J_OPTS="-Dlog4j.configurationFile=file:/home/username/kafka/bin/../config/log4j2.properties" în fișierul unitar systemd, astfel încât să fie utilizat log4j 2.17.
Cu toate acestea, există un lucru ciudat: toate jurnalele log4j sunt stocate într-un director numit literal ${kafka.logs.dir} în directorul principal. Colectorul de gunoi stochează cu succes jurnalele în locația corectă a jurnalului ~/kafka/logs. Deci directorul ~/kafka/logs conține fișiere precum kafkaServer-gc.log.0.current, în timp ce directorul hilar de ciudat ~/${kafka.logs.dir} conţine server.log, controler.log, etc.
Când mă uit la procesele pentru kafka și zookeeper, pot vedea că ambii au argumentul -Dkafka.logs.dir=/home/nume utilizator/kafka/bin/../logs. Acest lucru nu ar trebui să definească variabila de mediu kafka.logs.dir, care este folosit în fișier config/log4j2.properties? Cum de acel Zookeeper și Kafka se pare că nu au acces la asta $kafka.logs.dir variabilă de mediu?