登录 flink(slf4j) 和 spark(log4j) 平台的通用代码



我正在编写一些代码,这些代码应该在flink和Spark平台上运行(作为jar(。但是,这两个平台使用不同的日志 API。(flink 使用 log4j 作为日志记录框架,但 slf4j 作为 API(在这种情况下,登录通用代码的最佳实践是什么?

我尝试在这些常见代码中使用 Log4j2 API,但它无法在 flink 中记录任何内容。

我现在的想法是尝试从 slf4j 上下文(已经由 flink 启动(中使用 log4j API 获取日志记录上下文,对吗?

谢谢

绝对安全的方法是使用共享公共库中的SLF4J。 由于 SLF4J 是一个日志记录外观,因此您不必强制用户使用您在库中使用的相同日志记录框架。请参阅用户手册:

广泛分布的组件和库的作者可以编码 针对 SLF4J 接口,以避免强加日志记录 最终用户的框架。因此,最终用户可以选择所需的 在部署时通过插入相应的日志记录框架 类路径上的 SLF4j 绑定,稍后可能会由 将现有绑定替换为类路径上的另一个绑定,以及 重新启动应用程序。这种方法已被证明是简单的, 非常坚固。

最新更新