tomcat日志存储在单独的文件中

时间:2012-07-09 14:29:53

标签: java tomcat log4j

我开发了一个在tomcat上完美执行的spring mvc应用程序,但我得到的服务器tomcat的日志在控制台上,我希望将日志存储在一个文件中,换句话说我想要tomcat日志和在控制台上显示的事件将存储在一个文件中,我已经尝试过apache的log 4j,下面是我正在使用的属性文件......

    ### direct messages to file or.log ###
log4j.appender.file=org.apache.log4j.FileAppender
log4j.appender.file.File=C:/logs/springmvc.log
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1} - %m%n
log4j.appender.file.append=true

### set log levels - for more verbose logging change 'info' to 'debug' ##
log4j.rootCategory=ALL, file
log4j.logger.Demo=\=debug
log4j.logger.org.eclipse=debug

以及我想要记录log.info语句的主类..

public class HelloWorldController extends AbstractController{
    protected final Log logger = LogFactory.getLog(getClass());
    @Override
    protected ModelAndView handleRequestInternal(HttpServletRequest request,
        HttpServletResponse response) throws Exception {
        logger.info("Returning hello view");
        ModelAndView model = new ModelAndView("HelloWorldPage");
        model.addObject("msg", "saral saxreva");

        return model;
    }
}

但仍然没有在单独的文件中生成日志,请告知我,因为我坚持这个。

2 个答案:

答案 0 :(得分:0)

你的程序启动时是否创建了springmvc.log文件?这是对log4j是否正确接收的第一个指示。

  • 确保log4j属性文件位于正确的位置并正确选取
  • 仔细检查logger和LogFactory类的import语句(只是为了确保它们使用的是log4j

如果log4j设置正确,您将看到应用程序启动时创建的springmvc.log文件。

然后在log4j属性中,尝试:

log4j.rootLogger=DEBUG,file

并且还摆脱了你拥有的其他2个

log4j.logger.Demo=\=debug
log4j.logger.org.eclipse=debug

答案 1 :(得分:0)

我认为要在Web应用程序中启用日志记录,您需要一些将初始化它的侦听器(或servlet)。例如,在Spring中,您需要在web.xml中定义这样的监听器:

<!-- This listener is necessary to enable log4j logging -->
    <listener>
        <listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>
    </listener>

在互联网上有很多关于此的信息。这是来自谷歌的第一个link。这是另一个link,其中描述了如何在没有Spring的情况下在servlet或监听器中初始化logger。

最好使用 log4j.rootLogger 而不是 log4j.rootCategory ,因为不推荐使用last。