我正在尝试在Spring Web应用程序中手动加载log4j.properties( mylog4j.properties )文件。该文件位于 / WEB-INF / 下,我正在SYPLogger类中读取此文件,如下所示:
private static final String CONF_FILE_NAME = "mylog4j.properties";
Properties props = new Properties();
props.load(new FileInputStream(CONF_FILE_NAME));
PropertyConfigurator.configure(props);
虽然我尝试了不同的位置,但我无法读取该文件。当我提供配置文件的完整路径时,一切正常。但是上面的代码给出了FileNotFoundException(系统找不到指定的文件)。 请帮忙。 提前谢谢。
答案 0 :(得分:1)
尝试下一个:
String path = Thread.currentThread()
.getContextClassLoader()
.getResource("/")
.toURI()
.resolve("../mylog4j.properties")
.getPath();
Properties props = new Properties();
props.load(new FileInputStream(path));
PropertyConfigurator.configure(props);
换句话说,你看过班级org.springframework.web.util.Log4jConfigListener
了吗?您可以在web.xml
文件中配置此侦听器。 e.g:
<context-param>
<param-name>log4jConfigLocation</param-name>
<param-value>/WEB-INF/mylog4j.properties</param-value>
</context-param>
<listener>
<listener-class>
org.springframework.web.util.Log4jConfigListener
</listener-class>
</listener>