log4j无法读取配置文件

时间:2011-06-29 23:06:47

标签: java log4j

我正在将日志记录添加到我正在处理的java Web项目中。我遇到了一个我无法弄清楚的错误。

我从tomcat得到的错误是:
log4j:ERROR Could not read configuration file [log4j.properties]. java.io.FileNotFoundException: log4j.properties (No such file or directory)

我班上有这个简单的方法:

@RemotingInclude
public UserAccount save(UserAccount dataObject)
{
    PropertyConfigurator.configure("log4j.properties");
    logger.debug(dataObject.toString());

    return dao.save(dataObject);
}

当我查看我的webapps // WEB-INF / class文件夹时,我看到了我的log4j.properties文件。当我部署到我的tomcat服务器并重新启动tomcat时,我确实看到我的admin.log文件已创建,但没有写入任何内容。甚至在击中上述方法之后。非常感谢任何帮助。

这是我的log4j.properties文件的当前内容:

log4j.appender.AdminFileAppender=org.apache.log4j.FileAppender
log4j.appender.AdminFileAppender.File=admin.log
log4j.appender.AdminFileAppender.layout=org.apache.log4j.PatternLayout
log4j.appender.AdminFileAppender.layout.ConversionPattern= %-4r [%t] %-5p %c %x - %m%n.
log4j.appender.ReportFileAppender=org.apache.log4j.FileAppender
log4j.appender.ReportFileAppender.File=report.log
log4j.appender.ReportFileAppender.layout=org.apache.log4j.PatternLayout
log4j.appender.ReportFileAppender.layout.ConversionPattern= %-4r [%t] %-5p %c %x - %m%n
log4j.logger.com.rottmanj.services=WARN,AdminFileAppender

1 个答案:

答案 0 :(得分:2)

引导Log4j的方法是错误的。这通常是实施的方式:

import org.apache.log4j.Logger;

public class MyService {

    public UserAccount save(UserAccount dataObject) {
        logger.debug(dataObject.toString());

        return dao.save(dataObject);

    }

    private static Logger logger = Logger.getLogger(MyService.class);

}

这样Log4j将自动查找类路径根目录中的log4j.properties。