日期:2014-05-18  浏览次数:20663 次

为什么这样初始化log4j以后,就不能工作呢?
要是在class里直接这样编写:
  String file =TestService.class.getResource("/").getPath()+"mylog4j.properties";
PropertyConfigurator.configure(file);
Logger log = Logger.getLogger("eci.ciq.test.service.TestService");

log.error("error message");
log.info("info message");
log.debug("debug message");
log.fatal("fatal message");
log.warn("warnning message");
那么一切正常。

要是通过一个Servlet,在启动的时候设置
public void init() throws ServletException {
String file =ECIServlet.class.getResource("/").getPath()+"mylog4j.properties";
PropertyConfigurator.configure(file);
}
那样在class里下面这段语句:
  log.error("error message");
log.info("info message");
log.debug("debug message");
log.fatal("fatal message");
log.warn("warnning message");

一个都打印不出来。
请问这是何故?


------解决方案--------------------
你看一下file得到的是什么,是你想要的文件位置吗?
一般都是request.getRealPath(String relPath);
------解决方案--------------------
你在什么class里面做的呢 你PropertyConfigurator.configure(file);是在servlet的初始化做的 你访问过这个servlet了吗?servlet的初始化不是在web容器启动就进行的