有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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

我开发了一个spring mvc应用程序,它在tomcat上运行得很好,但是我从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

还有主课。。我想在上面写日志。要记录的信息声明

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) 个答案

  1. # 1 楼答案

    我认为要启用登录web应用程序,您需要一些侦听器(或servlet)来初始化它。例如,在春天,你需要在你的网站上定义。xml侦听器:

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

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

    而且最好使用log4j。rootLogger而不是log4j。rootCategory,因为last已被弃用

  2. # 2 楼答案

    springmvc。程序启动时创建的日志文件?这是log4j是否被正确拾取的第一个迹象

    • 确保log4j属性文件位于正确的位置,并正确拾取
    • 仔细检查logger和LogFactory类的导入语句(确保它们使用的是log4j类)

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

    然后在log4j属性中,尝试:

    log4j.rootLogger=DEBUG,file
    

    同时也要去掉另外两个

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