我知道kafka-console-consumer
有一个属性print.timestamp=true
,但它打印的是纪元时间而不是人类可读的时间。如何在命令行中使用带有人类可读时间戳的 Kafka 消息?
直接使用kafka-console-consumer
(kafka.tools.ConsoleConsumer
是不可能的。
打印邮件kafka-console-consumer
使用kafka.common.MessageFormatter
.它的职责是基于属性以人类可读的方式打印消息。默认情况下,它使用kafka.tools.DefaultMessageFormatter
实现,将时间戳打印为纪元时间。
要以更易读的方式打印时间戳,我可以看到选项:
- 实现您自己的
kafka.common.MessageFormatter
并在kafka-console-consumer
程序的属性中进行设置(--formatter CustomFormatterClassName
( - 使用 bash/awk 等解析
kafka-console-consumer
之外的时间戳