Предупреждения конфигурации Log4j при вызове метода из внешнего JAR через отражение - PullRequest
0 голосов
/ 06 октября 2011

Я вызываю метод, используя отражение.Для этого во время выполнения я:

1) Загрузите файл JAR, содержащий класс, который объявляет метод

loader = (URLClassLoader) ClassLoader.getSystemClassLoader();
Class urlClass = URLClassLoader.class;

Method method = urlClass.getDeclaredMethod("addURL", new Class[]{URL.class});
method.setAccessible(true);         
method.invoke(lLoader, new Object[] {lJarFile.toURI().toURL()});

2) Вызовите метод

lExternalMethod.invoke(lClass.newInstance());

3) Вызов метода работает и делает то, что должен, но в консоли я получаю следующее:

log4j:WARN No appenders could be found for logger (JarName) 
log4j:WARN Please initialize the log4j system properly

Я не использую log4j в своем приложении, но загружаемый JARчтобы вызвать метод делает.Метод, который я вызываю, имеет несколько строк:

Logger.GetLogger().Log("Msg", "Msg description");

Кроме того, JAR также содержит файл log4j.properties.

Есть ли способ исправить эту проблему?

1 Ответ

1 голос
/ 06 октября 2011

Предоставьте файл конфигурации Log4J или просто проигнорируйте его - это безобидное предупреждение о том, что файла конфигурации Log4J нет.(Да, есть, но, видимо, не тот, который определяет корневые приложения и т. Д.) Вы должны видеть это сообщение только при запуске.

...