Scala新手,尝试使用log4j计算和记录我的Kafka记录的延迟,但是遇到了错误。尝试查看一些SO articles,但是我想我错过了一些Scala概念。任何帮助都是非常感谢的。
- 解决方案1:不给予错误。*
val currentTimeInMillis = Instant.now.toEpochMilli
val latency = Math.max(0, currentTimeInMillis - record.timestamp())
logger.info("record latency: {}", latency)
logger.info("record KafkaPartition: {}, record Offset: {}", record.kafkaPartition(), record.kafkaOffset())
- 解决方案2:这会产生错误:*
val currentTimeInMillis = Instant.now.toEpochMilli
val latency = Math.max(0, currentTimeInMillis - record.timestamp())
logger.info("record latency: {}, record KafkaPartition: {}, record Offset: {}", latency, record.kafkaPartition(), record.kafkaOffset())
- 获取解决方案2的以下错误:*
错误:重载了具有替代项的方法值信息
[ERROR] (x$1: org.slf4j.Marker,x$2: String,x$3: Object*)Unit <and>
[ERROR] (x$1: org.slf4j.Marker,x$2: String,x$3: Any,x$4: Any)Unit <and>
[ERROR] (x$1: String,x$2: Object*)Unit
[ERROR] cannot be applied to (String, Long, Integer, Long)
[ERROR] logger.info("record latency: {}, record KafkaPartition: {}, record Offset: {}", latency, record.kafkaPartition(), record.kafkaOffset())
[ERROR] ^
[ERROR] one error found
2条答案
按热度按时间bt1cpqcv1#
我以前在Scala中遇到过这个问题,在日志参数中添加
.toString
可以解决这个问题。w46czmvw2#
或者,您可以执行以下操作:
以绕过类型限制。