通过反射从外部JAR调用方法时的Log4j配置警告

时间:2011-10-06 14:53:19

标签: java reflection log4j invoke

我正在使用反射调用方法。为此,在运行时,我:

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 个答案:

答案 0 :(得分:1)

提供一个Log4J配置文件,或者只是忽略它 - 这是一个无害的警告,说没有Log4J配置文件。 (是的,有,但显然没有一个定义根appenders等。)你应该只在启动时看到该消息。