Регистрация общих кодов для платформ flink (slf4j) и spark (log4j) - PullRequest
0 голосов
/ 14 мая 2018

Я пишу несколько кодов, которые должны работать (как jar) на платформах flink и spark.Однако эти две платформы используют разные API-интерфейсы журналов.(flink использует log4j в качестве каркаса ведения журнала, но slf4j в качестве API). В этом случае, как лучше всего войти в общие коды?

Я пытался использовать Log4j2 API в этих общих кодах, но он ничего не может зарегистрировать.в мгновение ока

Моя идея сейчас состоит в том, чтобы попытаться получить контекст журналирования с помощью log4j API из контекста slf4j (который уже запущен flink), это правильно?

Спасибо

1 Ответ

0 голосов
/ 15 мая 2018

Определенно безопасным способом было бы использовать SLF4J из общей общей библиотеки.Поскольку SLF4J - это фасад ведения журнала , вам не нужно заставлять своих пользователей использовать ту же среду ведения журнала, которую вы используете в своей библиотеке. См. Руководство пользователя на данный момент :

Авторы широко распространенных компонентов и библиотек могут кодировать интерфейс SLF4J, чтобы избежать навязывания инфраструктуры ведения журнала их конечному пользователю.,Таким образом, конечный пользователь может выбрать желаемую структуру ведения журналов во время развертывания, вставив соответствующую привязку slf4j в путь к классу, которая может быть изменена позже путем замены существующей привязки другой на пути к классам и перезапуска приложения.Этот подход оказался простым и очень надежным.

...