在 Ubuntu 上配置 Kafka 的日志(这里通常指 Kafka 自身的运行日志,不是 topic 消息日志),主要是通过 Log4j2 / Log4j 配置文件 来设置。下面分情况说明。
Kafka 使用 Log4j(老版本)或 Log4j2(新版本)管理日志。
一般路径:
cd /opt/kafka/config
或
cd /usr/local/kafka/config
常见文件:
log4j.propertieslog4j2.yaml / log4j2.xml# 全局日志级别
log4j.rootLogger=INFO, stdout, file
# 控制台
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{yy/MM/dd HH:mm:ss} %p %c{1}: %m%n
# 文件
log4j.appender.file=org.apache.log4j.RollingFileAppender
log4j.appender.file.File=/var/log/kafka/server.log
log4j.appender.file.MaxFileSize=100MB
log4j.appender.file.MaxBackupIndex=10
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%d{yy/MM/dd HH:mm:ss} %p %c{1}: %m%n
# 单独设置某个包日志级别
log4j.logger.kafka=INFO
log4j.logger.org.apache.zookeeper=WARN
Ubuntu 下建议放系统日志目录:
sudo mkdir -p /var/log/kafka
sudo chown -R kafka:kafka /var/log/kafka
这个不是“运行日志”,而是消息存储。
log.dirs=/var/lib/kafka/logs
创建目录:
sudo mkdir -p /var/lib/kafka/logs
sudo chown -R kafka:kafka /var/lib/kafka
常见参数:
log.retention.hours=168
log.segment.bytes=1073741824
log.cleanup.policy=delete
如果你用 systemd:
sudo nano /etc/systemd/system/kafka.service
示例:
[Service]
Environment="KAFKA_LOG4J_OPTS=-Dlog4j.configuration=file:/opt/kafka/config/log4j.properties"
改完重启:
sudo systemctl daemon-reload
sudo systemctl restart kafka
tail -f /var/log/kafka/server.log
| 需求 | 配置位置 |
|---|---|
| 改日志级别 | log4j / log4j2 配置 |
| 改日志路径 | log4j 或 log.dirs |
| 改日志大小 | MaxFileSize |
| 减少日志量 | 调高 WARN / ERROR |
| 只留错误日志 | rootLogger=ERROR |
如果你能告诉我:
我可以给你精确的配置文件内容。