Как настроить несколько log4j для различных войн в единственном EAR?

Вот твой prepare метод ...

override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
    if segue.identifier == "goToPreferences" {
      let destinationVC = segue.destination as! ExchangePreferencesVC
      destinationVC.delegate = self
    }
}

Посмотрите, что произойдет, если идентификатор segue не совпадает точно goToPreferences. Передача все еще будет происходить, но делегат не будет установлен. Так что проверьте свой идентификатор segue, а также добавьте некоторый код для обработки случая, когда вы не узнаете идентификатор. По крайней мере, вы должны записать сообщение, чтобы вам было легче обнаружить проблему.

9
задан jackysee 18 April 2009 в 04:45
поделиться

3 ответа

Оказывается, это невозможно из-за загрузчика классов. Иерархия загрузчика классов выглядит следующим образом:

Загрузчик классов приложения -> Загрузчик классов Ejb -> Загрузчик классов войны

Чтобы иметь отдельный журнал для отдельной войны, можно поместить log4j.jar в войну и позволить log4j использовать загрузчик классов войны. Но так как app1-ejb.jar и app2-ebj.jar также должны использовать log4j, log4j.jar можно разместить только на верхнем уровне. Таким образом, log4j находится на уровне загрузчика классов приложений.

Я могу указать одну конфигурацию log4j для записи разных пакетов в разные файлы. Но для общей библиотеки, такой как spring, журнал не может быть отделен.

8
ответ дан 4 December 2019 в 21:51
поделиться

Это также можно сделать, динамически изменив свойство FILE в файле свойств с помощью PropertyConfigurator в коде.

0
ответ дан 4 December 2019 в 21:51
поделиться

Причина, по которой он не работал, потому что log4j присутствует в корневом местоположении, вместо этого пусть каждая война имеет Log4j.jar в своем каталоге WEB-INF / lib и удалите log4j.jar из корень.

Для получения дополнительной информации см. Статью об этом в моем блоге. http://techcrawler.wordpress.com/

1
ответ дан 4 December 2019 в 21:51
поделиться
Другие вопросы по тегам:

Похожие вопросы: