Как запустить SLF4J в песочнице

У меня есть приложение (расширение), работающее на сервере Smartfox. Большинство из вас не знают Smartfox, но настройка аналогична Tomcat. т. е. у расширения есть собственный загрузчик классов, который сначала загружает классы из расширения, а затем глобальные серверные библиотеки (я буду называть это эгоистичной загрузкой классов, поскольку я не знаю официального термина, если он вообще существует).

У меня есть проблема с несколькими привязками SLF4J: мое расширение содержит логбэк, а сервер содержит другую привязку slf4j (для меня это бесполезно):

INFO   | jvm 1    | 2011/10/06 11:10:25 | SLF4J: Class path contains multiple SLF4J bindings.
INFO   | jvm 1    | 2011/10/06 11:10:25 | SLF4J: Found binding in [jar:file:/opt/smartfox/Server/lib/lsc.jar!/org/slf4j/impl/StaticLoggerBinder.class]
INFO   | jvm 1    | 2011/10/06 11:10:25 | SLF4J: Found binding in [jar:file:/opt/smartfox/Server/wext/smilefish/logback-classic-jar-logback-classic-0.9.29.jar!/org/slf4j/impl/StaticLoggerBinder.class]

Я надеялся, что эгоистичная загрузка классов решит эту проблему, но, видимо, это не так. Как я могу исправить это, не удаляя привязку?

(См. Существует ли загрузчик классов, подобный Tomcat, который можно использовать отдельно? для исходного кода эгоистичного загрузчика классов)


person Bart van Heukelom    schedule 06.10.2011    source источник


Ответы (1)


Вывод, выдаваемый SLF4J, является просто предупреждением. Судя по описанной вами загрузке класса (эгоистичный/сначала лист/сначала локальный), SLF4J, вероятно, связан с логбэком. Ты проверил?

person Ceki    schedule 06.10.2011