使用Java属性进行Log4j手动配置

时间:2013-10-21 14:54:19

标签: java configuration log4j

我正在尝试在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);

Project File Explorer

虽然我尝试了不同的位置,但我无法读取该文件。当我提供配置文件的完整路径时,一切正常。但是上面的代码给出了FileNotFoundException(系统找不到指定的文件)。 请帮忙。 提前谢谢。

1 个答案:

答案 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>