【问题标题】:Can't find log file on server using log4j使用 log4j 在服务器上找不到日志文件
【发布时间】:2012-07-30 03:14:50
【问题描述】:

我第一次尝试配置 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,这是我第一次使用它。

【问题讨论】:

  • 您是否也查看了应用程序的根目录?
  • 在你的电脑上搜索 myTest.log 我曾经在我没想到的地方找到了日志记录 :)
  • Jenson 我是 ubuntu 的新手,所以当我点击根目录时,它说您没有查看此文件夹的权限。如何使用终端窗口进入根目录?
  • 在 log4j.properties 中,您必须设置日志文件的完整路径。例如:log4j.appender.com.myTest.File=${catalina.home}/log/myTest.log
  • @user965884 将 log4j.properties 文件放在 src 文件夹中

标签: java tomcat spring-mvc log4j


【解决方案1】:

将 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());
  }

}

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

      【解决方案3】:

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

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

      希望这对你有用!!

      【讨论】:

        猜你喜欢
        • 2016-06-12
        • 1970-01-01
        • 2011-05-23
        • 1970-01-01
        • 2015-06-04
        • 2016-12-20
        • 1970-01-01
        • 2011-06-12
        • 1970-01-01
        相关资源
        最近更新 更多