java - 使用 slf4j 和 kafka 进行日志记录

标签 java apache-kafka slf4j

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

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

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

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

最佳答案

我在日志中添加了自定义过滤器。在这个过滤器中,我检查了消息,只要它包含 INVALID_FETCH_SESSION_EPOCH,我就会调用一个方法来重启我的应用程序。

关于java - 使用 slf4j 和 kafka 进行日志记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58411827/

相关文章:

python - 如何在融合的kafka python中读取批处理消息?

java - 如何每天创建新文件夹并在 slf4j 日志中创建文件

java - websphere liberty - 无法使用 slf4j 或 log4j 生成应用程序特定的日志记录

java - 使 JPA 在 JBoss 服务器上与 Spring Framework 一起工作

java - Gradle:如何使用一 jar 输出作为 launch4j 的输入

Java 正则表达式匹配每 2 个字母之间带有可选多个注释的单词(如何反向引用正则表达式子表达式)

go - Kafka 生产者不通过分区分发消息

apache-kafka - Kafka 事件携带的状态传输系统是否应该使用 GlobalKTable 进行本地查询来实现?

java - 禁用 Hibernate 日志记录,显示 sql false 不起作用

java - 单击监听器上的相对布局未采用正确的 for 循环索引