我想知道如何从我的应用程序中嵌入的资源加载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)
我不想让用户看到设置文件,所以我知道这个问题吗?
有人可以帮助我吗?
感谢。
答案 0 :(得分:2)
请参阅this以供参考。
XMLConfigurationFactory.getInstance().getConfiguration(source);
的返回类型为Configuration
而不是ConfigurationFactory
。