Настройка входа с помощью Storm - PullRequest
0 голосов
/ 05 января 2019

У меня есть проект шторма, для которого я добавил несколько пользовательских конфигураций обратного входа, используя logback.xml (добавлены конфиги для записи журналов в индекс). Когда я собираю jar-файл и внедряю его в кластер, я получаю несколько ошибок привязки для этого класса StaticLoggerBinder.class, поскольку он присутствует как в собственном списке зависимостей jar, так и в шторме. Ниже приведена ошибка

SLF4J: Found binding in [jar:file:/usr/lib/storm/apache-storm-1.2.2/lib/log4j-slf4j-impl-2.8.2.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/app/test/test-storm-0.0.1-SNAPSHOT-jar-with-dependencies.jar!/org/slf4j/impl/StaticLoggerBinder.class]

Это приводит к тому, что ни один из моих пользовательских конфигов не будет выбран. Когда я удаляю конфликтующий jar из папки Storm lib, мои конфиги logback.xml отражаются, и мои журналы записываются в индекс без проблем. Я также вижу эти журналы в начале, когда развертываю топологию, показывающую добавленные мной конфиги

22:05:13,818 |-INFO in ch.qos.logback.classic.LoggerContext[default] - Found resource [logback.xml] at [jar:file:/app/test/test-storm-0.0.55-SNAPSHOT-jar-with-dependencies.jar!/logback.xml]
22:05:13,839 |-INFO in ch.qos.logback.core.joran.spi.ConfigurationWatchList@19bb089b - URL [jar:file:/app/test/test-storm-0.0.1-SNAPSHOT-jar-with-dependencies.jar!/logback.xml] is not of type file
22:05:14,094 |-INFO in ch.qos.logback.core.joran.action.AppenderAction - About to instantiate appender of type [ch.qos.logback.core.ConsoleAppender]
22:05:14,097 |-INFO in ch.qos.logback.core.joran.action.AppenderAction - Naming appender as [CONSOLE]
22:05:14,102 |-INFO in ch.qos.logback.core.joran.action.NestedComplexPropertyIA - Assuming default type [ch.qos.logback.classic.encoder.PatternLayoutEncoder] for [encoder] property
22:05:14,125 |-INFO in ch.qos.logback.core.joran.action.AppenderAction - About to instantiate appender of type [com.splunk.logging.HttpEventCollectorLogbackAppender]
22:05:14,126 |-INFO in ch.qos.logback.core.joran.action.AppenderAction - Naming appender as [SPLUNK]
22:05:14,132 |-INFO in ch.qos.logback.classic.joran.action.LoggerAction - Setting level of logger [com.test] to INFO
22:05:14,132 |-INFO in ch.qos.logback.classic.joran.action.LoggerAction - Setting additivity of logger [com.test] to false
22:05:14,132 |-INFO in ch.qos.logback.core.joran.action.AppenderRefAction - Attaching appender named [SPLUNK] to Logger[com.test]
22:05:14,133 |-INFO in ch.qos.logback.core.joran.action.AppenderRefAction - Attaching appender named [CONSOLE] to Logger[com.test]
22:05:14,133 |-INFO in ch.qos.logback.classic.joran.action.RootLoggerAction - Setting level of ROOT logger to INFO
22:05:14,133 |-INFO in ch.qos.logback.core.joran.action.AppenderRefAction - Attaching appender named [CONSOLE] to Logger[ROOT]
22:05:14,133 |-INFO in ch.qos.logback.classic.joran.action.ConfigurationAction - End of configuration.

Однако я не хочу идти по этому маршруту, поскольку он не может быть поддержан, поэтому я решил использовать maven-shade-plugin, чтобы переместить org.slf4j.impl в org.shaded.slf4j.impl. Теперь, когда я развертываю топологию, больше нет нескольких привязок, однако мой logback.xml не учитывается, и ни одна из моих конфигураций не отображается, и я не вижу вышеупомянутые сообщения. Вероятно, возвращается к использованию другого регистратора.

Как сделать так, чтобы мои конфиги отображались при развертывании топологии? Пожалуйста помоги. (Storm Version 1.2.2)

1 Ответ

0 голосов
/ 05 января 2019

Storm переключился с Logback на Log4j2 несколько лет назад. Вы можете настроить Log4j2 через файлы storm / log4j2 / worker.xml и storm / log4j2 / cluster.xml. Первый настраивает ведение журнала для вашей топологии, а также для рабочей JVM.

Вы должны исключить выход из своей жирной банки.

Пожалуйста, смотрите также этот ответ https://stackoverflow.com/a/50229035/8845188.

...