0

Я обновляю приложение Spring MVC с Spring 3.1 до 4.3 и Hibernate с 3.6 по 5.2. Я буду управлять этим в Wildfly 8. Зависимости управляются Maven.Приложение, использующее jboss-logging, когда оно должно использовать log4j

Spring использует commons-logging, который просматривает путь к классу приложения и пытается выбрать подходящую структуру ведения журнала. В моем случае, похоже, он выбирает неправильный. Я включил log4j в свой pom.xml и проверил иерархию зависимостей, я вижу, что jboss-logging не существует. Вот сообщение об ошибке я получаю:

Invocation of init method failed; nested exception is java.lang.NoSuchMethodError: org.jboss.logging.Logger.debugf 

Так что даже если у меня нет JBoss протоколирования в моем проекте, достоянию-лесозаготовках найти его где-то и пытается использовать его, но безуспешно. После некоторых поисков я нашел jboss-logging-3.1.4.GA.jar в Wildfly.

Причина ошибки в том, что это старая версия jboss-logging. Я добавил новый сервер на сервер и отредактировал module.xml, чтобы указать на него, и ошибка исчезла. Это доказывает, что commons-logging находит jboss-logging на сервере.

Проблема в том, что я не хочу jboss-logging, я хочу log4j. Как заставить commons-logging использовать log4j и игнорировать то, что на сервере?

Edit: Я последовал за ссылку chrisharm поставили и добавила эти строки в файл standalone.xml:

<add-logging-api-dependencies value="false"/> 
<use-deployment-logging-config value="false"/> 

Я также изменил module.xml, чтобы указать на старую баночку снова, так как я скорее всего, увидит ошибку, если используется jboss. Когда я бегу теперь я получаю это:

Caused by: java.lang.NoClassDefFoundError: org/jboss/logging/Logger 

Это может быть шагом в правильном направлении, так как теперь весна не имеет доступа к JBoss заболачиванию, но он по-прежнему пытается использовать его по какой-то причине.

ответ

1

https://docs.jboss.org/author/display/WFLY8/How+To#HowTo-HowdoIusemyownversionoflog4j%3F

Если вам нужно/хочу, чтобы включить вашу версию log4j, то вам необходимо сделать следующие два шага.

  1. Отключить добавление зависимостей лесозаготовительных для всех развертываний с дополнительным каротажем Апи-зависимостями атрибутов и отключить атрибут использование развертывания каротажа-конфигурацию или исключающие подсистемы протоколирования в JBoss-развертываниях-структуре .xml.
  2. Затем вам нужно включить библиотеку log4j в развертывание.

Это работает только для входа в систему. Журналы сервера будут продолжать использовать конфигурацию подсистемы ведения журнала.