как мне войти через slf4j в потоковое приложение spark - PullRequest
0 голосов
/ 07 сентября 2018

Здравствуйте. Я являюсь частью команды, которая разрабатывает потоковое приложение Spark. Существует также много логики кода вне потоковой части. Для всего приложения, потокового или нет, мы используем slf4j для ведения журнала. У нас также есть собственный пользовательский журнал приложений.

У нас никогда не было журналирования внутри потоковой части Spark, но теперь у нас есть необходимость добавить логирование к нему. Тем не менее, любая регистрация (например, logger.info ()) inside stream.foreachRDD () никогда не отображается в нашем журнале. После прочтения я обнаружил, что org.apache.log4j.Logger не сериализуем. Поэтому я добавил следующий код:

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

с "Logger", являющимся регистратором вне любой потоковой логики. Я также попробовал LogManager.getLogger (), но результат тот же - любая запись через "logger" не отображается в нашем выводе регистрации, как будто этого кода регистрации вообще нет.

Мой вопрос, как правильно потоковому приложению Spark использовать Log4j для входа?

спасибо

...