使用jar内部的默认log4j2配置文件

时间:2015-07-01 12:14:30

标签: java log4j2

我在我的应用程序jar中放置了一个默认的log4j2配置文件(log4j2.xml) 如果用户没有定义自己的配置文件,我想加载我的默认配置。

我可以通过这种方式获得默认配置的流:

InputStream defaultConfigStream = MyApp.class.getClassLoader().getResourceAsStream("log4j2.xml");

但这对我没有帮助,因为以下代码会获取配置文件的完整路径以检查其存在并加载它。

System.setProperty("log4j.configurationFile", file.toUri().toURL().toString());

我怎样才能做到这一点?我不想硬编码我的默认配置设置,例如here

2 个答案:

答案 0 :(得分:0)

使用DomConfigurator,请参阅:https://logging.apache.org/log4j/1.2/apidocs/org/apache/log4j/xml/DOMConfigurator.html,您可以解析XML并将其提供给配置程序,初始化记录器时它会自动考虑配置

答案 1 :(得分:0)

我发现,这很简单。与documentation(第7点)中描述的一样,Log4j2将自动在类路径中查找log4j2.xml。 因此,如果用户没有定义自己的配置文件,我不会调用任何方法来加载我的默认配置。