我有一个 kafka 应用程序,它从一个主题消费并写入另一个主题。日志记录是使用 slf4j
完成的。它将信息和错误记录到单独的文件中。我的应用有问题,有时会遇到 INVALID_FETCH_SESSION_EPOCH
错误。
问题是这个错误最终出现在我的信息文件中,应用程序永远挂起并需要重新启动。一种解决方案是找到与我现在的问题无关的这个无效纪元问题的根源。
我的问题是如何检查我的日志以查找此错误并在发生错误时自动重启应用程序。我通过扩展 Logger 和 ILoggerFactory 实现了我自己的自定义记录器,但它们仍然无法检查此错误。 Kafka 似乎使用了不同的 Logger 来编写它。
我也无法检查日志文件,因为它们是由滚动策略创建的,实现起来会很麻烦。 无论如何,在写入之前,我的自定义方法是否会检查我的信息文件中的任何内容?
最佳答案
我在日志中添加了自定义过滤器。在这个过滤器中,我检查了消息,只要它包含 INVALID_FETCH_SESSION_EPOCH
,我就会调用一个方法来重启我的应用程序。
关于java - 使用 slf4j 和 kafka 进行日志记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58411827/