与Kafka一起分发的Zookeeper的错误日志文件目的地在哪里?

Gre*_*egH 5 apache-kafka apache-zookeeper

当在同一节点上运行 ZK 和 Kafka 时,我对如何配置为 Zookeeper 写入错误日志文件的位置感到有些困惑。我知道它使用 log4j 并且有一个 zookeeper.properties 文件。我假设它使用的是某种开箱即用的默认设置。如果我做:

sudo lsof -p 31311 | grep log | grep zoo
Run Code Online (Sandbox Code Playgroud)

我得到:

java    31311 root    1w      REG              259,1     24962  134739 /home/ec2-user/zookeeper-start-log
java    31311 root    2w      REG              259,1     24962  134739 /home/ec2-user/zookeeper-start-log
java    31311 root    3w      REG              259,1     22350 1050171 /opt/Kafka/kafka_2.11-1.1.0/logs/zookeeper-gc.log.0.current
java    31311 root   94w      REG              259,1  67108880  394260 /var/local/zookeeper/data/version-2/log.1
Run Code Online (Sandbox Code Playgroud)

如果我想为 zookeeper 明确指定我的错误日志位置,我在 zookeeper.properties 文件中究竟指定了什么?

cri*_*007 1

如果您使用提供的zookeeper-server-start脚本,那么 Kafka 和 Zookeeper 共享同一个log4j.properties文件。

在那里,您可以根据 Zookeeper 客户端和/或 Kafka 的包名称重新配置 DailyRollingFileAppender 或 ConsoleAppender

如果您想重新配置 Zookeeper 存储的除服务日志之外的数据,Zookeeper 文档应涵盖这些数据以及默认值

  • @Ryan 正如所回答的,Zookeeper 和 Kafka 都只有一个“log4.properties”。是否真正获取文件取决于文件的配置方式。事实上,这几乎适用于所有 Java 服务。[默认情况下,Zookeeper 仅访问 stdout,而 Kafka 则访问各种文件。](https://github.com/apache/kafka/blob/trunk/config/log4j.properties#L18) (2认同)
  • 换句话说,创建一些 `zooAppender` [在此行](https://github.com/apache/kafka/blob/trunk/config/log4j.properties#L61) 并使用像 `kafkaAppender` 这样的 DailyRollingFileAppender 配置它。然后你就得到文件了。 (2认同)