使用 slf4j 和 kafka 进行日志记录

Logging with slf4j and kafka

我有一个 kafka 应用程序,它从一个主题消费并写入另一个主题。使用 slf4j 完成记录。它将信息和错误记录到单独的文件中。我的应用有问题,有时会遇到 INVALID_FETCH_SESSION_EPOCH 错误。

问题是这个错误最终出现在我的信息文件中,应用程序永远挂起,需要重新启动。一种解决方案是找到与我现在的问题无关的这个无效纪元问题的根源。

我的问题是如何检查我的日志以了解此错误并在发生时自动重启应用程序。我通过扩展 Logger 和 ILoggerFactory 实现了我自己的自定义记录器,但它们仍然无法检查此错误。好像Kafka用了不同的Logger来写。

我也无法检查日志文件,因为它们是由滚动策略创建的,实施起来会很麻烦。 无论如何,在写入之前,我的信息文件中的任何内容都会通过我的自定义方法进行检查吗?

我在日志中添加了自定义过滤器。在此过滤器中,我检查了消息,每当它包含 INVALID_FETCH_SESSION_EPOCH 时,我都会调用一个方法来重新启动我的应用程序。