log4j.properties如果放在web-inif/classes目录下,会被自动加载。而且很多的开源框架,比如struts2也会默认从这个文件目录下读取log4j的配置文件。
如果框架用多了,那么这些配置文件就不大好管理,我想单独建一个config文件夹,用来存放配置文件
问题就出现了,一直抛异常:log4j:ERROR Could not read configuration file。代码如下:
PropertyConfigurator.configure(Log4jConfig.class.getClassLoader().getResource("") + "config/log4j.properties")
从console打印出来的日志来看,文件指定的路径非常的正确就是project/web-inf/classes/config/log4j.properties
但是,如果我使用下面的代码就没有问题了,但是有点别扭,因为有IOException要tyr-catch
Properties p = new Properties();
p.load(Log4jConfig.class.getResourceAsStream("/config/log4j.properties"));
PropertyConfigurator.configure(p);
无解...
<servlet>
<servlet-name>Log4jServlet</servlet-name>
<servlet-class>com.stock.finance.servlet.Log4jServlet</servlet-class>
<init-param>
<param-name>config-file</param-name>
<param-value>/WEB-INF/classes/config/log4j.properties</param-value>
</init-param>
<load-on-startup>10</load-on-startup>
</servlet>
String logFilePath = config.getInitParameter("config-file");
PropertyConfigurator.configure(getServletContext().getRealPath("") + logFilePath);
这样也能读取