你把原来catalina.out的地方都换成用log4j去记录日志就可以了!

解决方案 »

  1.   

    呵呵,如果是这样的话你就必须重新编译tomcat的源代码了啊
      

  2.   

    你可以利用DefaultContext组件,通过设置它的一些属性,来减少对logs下catalina.out中的日志信息的输出。
    DefaultContext元素代表Context元素的配置设置的一个子集,可以嵌套在Engine或者Host元素中,表示自动创建的Context的缺省配置属性。它有一个附加属性是swallowOutput,设置这个属性的值就可以了。swallowOutput属性的值有true和false两个,
    如果该值为true,System.out和System.err的输出被重定向到web应用的logger。也就是说把它设置为true的话,原本输入到catalina.out中的信息,将被重定向到你的日志器中。
    如果没有指定,缺省值为false,这样的话日志信息将全部记录到catalina.out中
      

  3.   

    谢谢楼上,换成log4j是为了能用它的配置,改成比如3个文件轮循记录。但是我还是需要把所有日志记录下来。而且整个tomcat下面的所有web应用的日志都要记录在一个文件,而不是一个web一个。这样我只要tail -f 一个文件就可以监控后台了。
      

  4.   

    我的第三个帖子里说的就是你的意思,利用DefaultContext组件,然后设置swallowOutput的属性为true,这样凡是,System.out和System.err的输出都将被重定向到你的logger,由你的logger来控制他们的输出,你可以把他们输出到和catalina.out同一个目录下!
      

  5.   

    不知道你现在明白了没有???举个例子吧,你定义了2个logger,其中一个用于你自己的web中的一些日志记录,而另一个则用来替talina.out分担任务,把其中的System.out和System.err的输出由你的logger来负责。
      

  6.   

    呵呵 设置方面其实也很简单的,不过建议楼主还是换高版本的tomcat吧!为什么还用tomcat4版本的啊????不解。
      

  7.   

    谢谢楼上热心,原来试过tomcat5,结果发现有bug。
    其实稳定最重要了,比如jdk,我想在jdk5.2出来之前我是不会升级jdk的。:)
    btw,现在tomcat下有两个web app,那设置都导向一个log吗?
      

  8.   

    呵呵  看来楼主对tomcat4已经很有感情了啊!
      

  9.   

    具体设置的话,楼主还是查一下有关DefaultContext组件中的swallowOutput属吧!性
      

  10.   

    楼主看看tomcaf官方网站上关于DefaultContext组件的内容吧!希望对你有用
    http://tomcat.apache.org/tomcat-4.1-doc/config/defaultcontext.html