卡夫卡日志文件的位置

只是为了清楚一些事情:我在谈论包含stdout和stderr消息的进程日志文件。

这是我的systemd单元文件:

[Unit] Description=Apache Kafka server Documentation=http://kafka.apache.org Requires=network.target remote-fs.target After=network.target remote-fs.target [Service] Type=simple PIDFile=/var/run/kafka.pid User=kafka Group=kafka Environment="JAVA_HOME=/usr/lib/jvm/jre" Environment="KAFKA_LOG4J_OPTS=-Dlog4j.configuration=file:/var/log/kafka" ExecStart=/opt/kafka/bin/kafka-server-start.sh /opt/kafka/config/server.properties ExecStop=/opt/kafka/bin/kafka-server-stop.sh Restart=on-failure SyslogIdentifier=kafka [Install] WantedBy=multi-user.target 

请注意,我添加了KAFKA_LOG4J_OPTS环境variables。

但是,这似乎没有做任何事情。 这是输出,当我尝试开始我的服务:

 Feb 11 00:55:30 kafka01 kafka[4047]: mkdir: cannot create directory '/opt/kafka/bin/../logs': Permission denied Feb 11 00:55:30 kafka01 kafka[4047]: OpenJDK 64-Bit Server VM warning: Cannot open file /opt/kafka/bin/../logs/kafkaServer-gc.log due to No such file or directory Feb 11 00:55:30 kafka01 kafka[4047]: log4j:WARN No appenders could be found for logger (kafka.Kafka$). Feb 11 00:55:30 kafka01 kafka[4047]: log4j:WARN Please initialize the log4j system properly. 

那么,可以请别人告诉我正确的方法来改变卡夫卡日志文件的位置? KAFKA_LOG4J_OPTS不起作用,KAFKA_LOG_DIR也不起作用(=我希望kafka实现了这个类似于zookeeper)。 卡夫卡文件也不告诉我。

对于像我这样的其他不幸的人,你需要修改LOG_DIR环境variables(为Kafka v0.11testing)。

如果打开脚本kafka-server-start/usr/bin/zookeeper-server-start ,你会在底部看到它调用kafka-run-class脚本。 你会看到它使用LOG_DIR作为服务日志的文件夹(不要与kafka主题数据混淆)。