web项目中Log4j不输出到文件问题

 
 
 
 

 

log4j.properties文件放在classpath文件夹下(即web项目的WEB-INF/classes文件夹下,
 

这样可以保证log4j能够自动识别配置文件,而不用显式的配置)内容如下:

public class TestLogger {  
  
    public static Log log = LogFactory.getLog(TestLogger.class);  
  
    public static void main(String[] args) {  
        log.error("怎么回事?");  
    }  
  
    @Test  
    public void test() {  
        log.error("怎么回事?");  
    }  
}  

以上程序可以输出到控制台和logs.log文件当中。但是如下程序:

public class TestLogs extends HttpServlet {  
    private static final long serialVersionUID = 1L;  
    private static Log log = LogFactory.getLog(TestLogs.class);  
  
    /** 
     * @see HttpServlet#HttpServlet() 
     */  
    public TestLogs() {  
        // TODO Auto-generated constructor stub  
    }  
  
    @Override  
    public void init() throws ServletException {  
        log.error("怎么回事?");  
    }  
}  

输出只能输出到控制台,而无法输出到logs.log文件当中。

问题出在
log4j.appender.file.File=../logs.log

这个配置之上。应更改为:

log4j.appender.file.File=d:/logs.log

即要指定绝对路径而不能指定相对路径!问题解决!

配置成相对路径时,在eclipse 工程跟目录下能生成相应的日志文件,但是web服务器启动时不会记录到根目录下的日志文件,因为web服务器找不到。

纠结好久的问题!!。

相关推荐