1

我正在尝试第一次配置 log4j,但它没有创建 myTest.log 文件。下面是我的 log4j.properties 文件,该文件的位置是 WEB-INF/classes 文件夹。

log4j.rootLogger=INFO, stdout, com.myTest

#tomcat logger
#log4j.logger.org.apache.catalina=DEBUG

log4j.logger.com.myTest=INFO

log4j.logger.org.apache.commons.configuration.PropertiesConfiguration=DEBUG

#appenders
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.target=System.out
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=[%5p] %d{yyyy-MM-dd HH:mm:ss} %m%n

log4j.appender.com.myTest=org.apache.log4j.FileAppender 
log4j.appender.com.myTest.File=myTest.log 
log4j.appender.com.myTest.MaxFileSize=15MB 
log4j.appender.com.myTest.MaxBackupIndex=10 
log4j.appender.com.myTest.layout=org.apache.log4j.PatternLayout 
log4j.appender.com.myTest.layout.ConversionPattern=[%5p] %d{yyyy-MM-dd HH:mm:ss} %m%n

log4j.appender.org.apache.ibatis=org.apache.log4j.FileAppender 
log4j.appender.org.apache.ibatis.File=myTest.log 
log4j.appender.org.apache.ibatis.MaxFileSize=15MB 
log4j.appender.org.apache.ibatis.MaxBackupIndex=10 
log4j.appender.org.apache.ibatis.layout=org.apache.log4j.PatternLayout 
log4j.appender.org.apache.ibatis.layout.ConversionPattern=[%5p] %d{yyyy-MM-dd HH:mm:ss}     %m%n

我的控制器类就像

@Controller
public class LoginController
{
static final Logger logger = Logger.getLogger(LoginController.class);

@RequestMapping("/login")
public ModelAndView login(){

    logger.debug("Test logs");
    logger.error("test error");

    return new ModelAndView("login"); 

}

 }

但我在我的 Apache/log 文件夹中看不到任何 myTest.log 文件。这是应该的地方吗?

我使用的 Jar 文件是 log4j-1.2.16.jar。是不是还需要什么。

我正在使用 Ubuntu,这是我第一次使用它。

4

3 回答 3

2

将 log4j.properties 文件放在 build/classes/ 文件夹中。

将文件路径放入 ${catalina.home}/logs/myTest.log。

  log4j.appender.com.myTest.File=${catalina.home}/log/myTest.log 

可以通过在 LoginController 类中编写以下代码来检查日志路径

    Enumeration e = Logger.getRootLogger().getAllAppenders();
    while ( e.hasMoreElements() ){
      Appender app = (Appender)e.nextElement();
     if ( app instanceof FileAppender ){
    System.out.println("File: " + ((FileAppender)app).getFile());
  }

}

于 2012-08-02T05:18:02.667 回答
1

正如您在问题中发布的那样,文件的位置log4j.properties文件WEB-INF/classes夹。

要解决此问题,请尝试将log4j.properties文件放在src应用程序的文件夹中。

于 2012-08-01T09:02:50.107 回答
1

我遇到了同样的问题。在服务器机器上,log4j无法写入日志文件,但使用standout打印日志信息,它正在工作。(是吗?)我认为是权限问题。所以我在tomcat日志位置(logs /)中写入日志文件

log4j.appender.com.myTest.File=${catalina.home}/logs/myTest.log 

希望这对你有用!!

于 2016-12-05T02:25:40.133 回答