我开发了一个在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;
}
}
但仍然没有在单独的文件中生成日志,请告知我,因为我坚持这个。
答案 0 :(得分:0)
你的程序启动时是否创建了springmvc.log文件?这是对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。