Java 在运行时动态加载log4jjar和属性文件,并使用记录器实例记录日志

Java 在运行时动态加载log4jjar和属性文件,并使用记录器实例记录日志,java,log4j,Java,Log4j,我有一个情况- log4jjar在类路径中不可用,需要在运行时从文件路径加载 然后需要创建Logger实例并登录到一个文件中。还需要在运行时加载log4j.properties 我曾尝试使用URLClassLoader加载jar,但由于我在reflection1方面的经验有限,因此无法从中创建记录器实例。没有任何意义。您不能从文件中加载jar。2.我试过使用-File myJar=new文件(“C:\\log4jjar\\log4j.jar”);URL=myJar.toURI().tour();

我有一个情况-

  • log4jjar在类路径中不可用,需要在运行时从文件路径加载
  • 然后需要创建Logger实例并登录到一个文件中。还需要在运行时加载log4j.properties

  • 我曾尝试使用URLClassLoader加载jar,但由于我在reflection1方面的经验有限,因此无法从中创建记录器实例。没有任何意义。您不能从文件中加载jar。2.我试过使用-File myJar=new文件(“C:\\log4jjar\\log4j.jar”);URL=myJar.toURI().tour();URLClassLoader child=newURLClassLoader(newURL[]{URL},System.class.getClassLoader());Class classToLoad=Class.forName(“org.apache.log4j.Logger”,true,child);方法Method=classToLoad.getDeclaredMethod(“getLogger”,String.class);对象实例=classToLoad.newInstance();对象结果=方法。调用(实例);--但classToLoad.newInstance()在记录器死亡时给我带来异常,因为它没有arg构造函数。那么如何创建实例呢?你没有收到我的评论。在运行时没有任何理由加载log4j.jar。从一开始就将其保留在构建文件的类路径上。至于以编程方式配置Log4J,googleit,有很多参考资料。