如何通过Spark Streaming应用程序中的slf4j登录

时间:2018-09-07 00:08:34

标签: scala log4j spark-streaming slf4j

您好:我是一个正在开发Spark流应用程序的团队的成员。流部分之外还有很多代码逻辑。对于整个应用程序,无论是否流式传输,我们都使用slf4j进行日志记录。我们也有自己的自定义日志附加程序。

我们在Spark流传输部分中从来没有任何日志记录,但是现在需要向其中添加日志记录。但是,任何日志记录(例如logger.info()) 内部stream.foreachRDD()永远不会出现在我们的日志输出中。 阅读更多内容后,我发现org.apache.log4j.Logger无法序列化。 所以我添加了以下代码:

@transient lazy val logger2: Logger = Logger.getLogger(this.getClass)

“ Logger”是任何流逻辑之外的记录器。 我也尝试了LogManager.getLogger(),但是结果是一样的- 通过“ logger”进行的任何日志记录都不会显示在我们的日志记录输出中,就像这些日志记录代码根本不存在一样。

我的问题,Spark流应用程序使用Log4j进行日志记录的正确方法是什么?

谢谢

0 个答案:

没有答案