如何从资源加载Log4j2配置文件

时间:2013-02-20 13:10:20

标签: java log4j2

我想知道如何从我的应用程序中嵌入的资源加载Log4j的配置文件?

也就是说,我在计算机上没有文件,文件嵌入在我的应用程序中,我想加载它。

以下是我使用的代码:

ConfigurationSource source = new ConfigurationSource(Main.class.getResourceAsStream("/in/gunbound/prelauncher/server/log4j2/log4j2.xml"));
ConfigurationFactory factory = (ConfigurationFactory) XMLConfigurationFactory.getInstance().getConfiguration(source);
ConfigurationFactory.setConfigurationFactory(factory);

但结果是这个例外:

  

线程“main”中的异常java.lang.ClassCastException:   org.apache.logging.log4j.core.config.XMLConfiguration无法强制转换   到org.apache.logging.log4j.core.config.ConfigurationFactory at   in.gunbound.prelauncher.server.Main.main(Main.java:62)

我不想让用户看到设置文件,所以我知道这个问题吗?

有人可以帮助我吗?

感谢。

1 个答案:

答案 0 :(得分:2)

请参阅this以供参考。

XMLConfigurationFactory.getInstance().getConfiguration(source);的返回类型为Configuration而不是ConfigurationFactory