Ошибка множественных привязок SLF4J во встроенном веб-приложении jetty 9 при попытке вести журналы журналов причала

Я пытаюсь создать автономную версию (исполняемый jar) веб-приложения. Поэтому я использую причал для загрузки файла войны. Файл войны уже содержит slf4j и logback в качестве зависимостей. В моем автономном приложении у меня есть logback.xml для определения определений регистратора.

<?xml version="1.0" encoding="UTF-8"?>
    <configuration>    

  <appender name="app" class="ch.qos.logback.core.FileAppender">
    <file>/tmp/app.log</file>
    <encoder>
      <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
    </encoder>
  </appender>

  <root level="${log.level}">
    <appender-ref ref="app"/>
  </root>

</configuration>

Это работает нормально, но по-прежнему выводит информацию журнала для причала на консоли вместо файла журнала (все журналы приложений входят в мой файл журнала). В документации причала я обнаружил, что мне нужно включить структуру ведения журнала также в мое приложение для встраивания. Поэтому я включил slf4j и logback, но теперь получаю ошибку SLF4J: путь к классу содержит несколько привязок SLF4J. и не регистрируется в моих файлах.

Как я могу это исправить?

Версии:

  • причал: 9.0.1.v20130408
  • журнал: 1.0.7
  • slf4j: 1.7.2

person tobr    schedule 18.04.2013    source источник
comment
Возможно, это может помочь stackoverflow.com /вопросы/14024756/   -  person Paulino III    schedule 18.04.2013


Ответы (1)


Во встроенном режиме вы контролируете все.

Если это всего лишь одно веб-приложение, удалите повторяющиеся файлы JAR и рассмотрите возможность установки WebAppContext.setParentLoaderPriority(true) и просто используя все из 1 ClassLoader.

person Joakim Erdfelt    schedule 18.04.2013