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?