使用 slf4j 和 kafka 进行日志记录



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

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

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

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

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

最新更新