2016-01-14 3 views
1

У меня есть пользовательское приложение LogBack. Класс, который использует appender и пользовательский appender, скомпилирован в один файл jar. Приложение запускается на искровом кластере DSE. Я сделал изменения logback.xml на каждом узле. Когда я запустить приложение я вижу ошибкиПользовательский приставщик LogBack не работает с java.lang.ClassNotFoundException

17:39:35,039 |-ERROR in ch.qos.logback.core.joran.action.AppenderAction - Could not create an Appender of type [com.test.logger.CassandraAppender]. ch.qos.logback.core.util.DynamicClassLoadingException: Failed to instantiate type com.test.logger.CassandraAppender 

Caused by: java.lang.ClassNotFoundException: com.test.logger.CassandraAppender 
     at  at java.net.URLClassLoader.findClass(URLClassLoader.java:381) 
     at  at java.lang.ClassLoader.loadClass(ClassLoader.java:424) 
     at  at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331) 
     at  at java.lang.ClassLoader.loadClass(ClassLoader.java:357) 
     at  at ch.qos.logback.core.util.OptionHelper.instantiateByClassNameAndParameter(OptionH 
elper.java:60) 

Файл банка копируется в/главная/каталог [MyUser] и выполняется оттуда. Чего не хватает? Где Logback ищет пользовательский appender?

+0

Является ли банка на вашем пути к классу? Если не добавить его в classpath. Если вы используете eclipse IDE, добавьте его в папку lib в среде IDE для удобства. –

+0

И мое искровое задание, использующее пользовательский appender, так и пользовательский appender, находятся в одном проекте, поэтому они скомпилированы в один файл jar. Поэтому не уверен, как это поможет. – vishakha

+0

Посмотрите на OptionHelper.instantiateByClassNameAndHelper в строке 60. Вы видите какую-либо ошибку в IDE? Я просто пытаюсь получить от вас больше информации. –

ответ

0

Похоже, что способ загрузки журналов Appenders не играет хорошо с Spark (я столкнулся с этой проблемой с помощью logstash-logback-encoder). У меня был успех с помещением Jar, содержащего класс Appender, в каталог ${SPARK_HOME}/jars.