У меня была такая же ситуация, когда я пытался перейти с использования slf4j-simple
на slf4j-log4j12
(при добавлении банки log4j
). После некоторой отладки, как упоминает SteveD, проблема связана с видимостью ресурса. В моей ситуации у меня был плагин, который содержал мои библиотеки журналов; однако я не хотел указывать свои свойства ведения журнала в общем плагине.
Мой подход, который может работать для вашей ситуации, заключался в том, чтобы иметь конфигурацию ведения журнала для каждого плагина, для которого вы хотите иметь возможности ведения журнала. Для плагина, который требует регистрации, я бы добавил что-то вроде следующего к активатору плагина:
Bundle bundle = bundleContext.getBundle();
URL entry = bundle.getEntry("log4j.properties");
try(InputStream inputStream = entry.openStream())
{
PropertyConfigurator.configure(inputStream);
}
catch(IOException e) {}
Несмотря на то, что, к сожалению, требуется добавить код в активатор; Мне удалось настроить различные возможности ведения журналов для каждого плагина, мне не приходилось иметь дело с новыми регистрациями плагинов / друзей Eclipse, а также не приходилось иметь дело с управлением файлами log4j.properties в любом файле манифеста или build.properties.
Другие заметки
- Когда появляется сообщение об ошибке инициализации («Пожалуйста, правильно инициализируйте систему log4j»), оно появится только один раз. Сначала это вызывало у меня некоторую путаницу, когда я не обнаружил, что два (2) плагина были настроены неправильно, но появилось только одно (1) сообщение об ошибке.