catalina.out用Tomcat 6.0滚动

obj*_*cts 40 logging tomcat catalina.out

我有一个默认的tomcat安装,没有更改日志记录配置.日志文件(特别是catalina.out)似乎正在正常滚动(每天).

然而,除了每日日志之外,还有一个catalina.out文件,它继续增长.这就是我需要解决的问题,即每天清除它(或者如果可能的话,将它完全删除)

有人可以解释这里发生了什么,以及控制日志文件大小的最佳策略吗?

只是为了澄清输出正在同时写入catalina.out和每日日志

-rw-r--r--  1 solr solr   90920663 Jul 18 01:16 logs/catalina.2009-07-18.log
-rw-r--r--  1 solr solr     238010 Jul 18 01:16 logs/catalina.out
Run Code Online (Sandbox Code Playgroud)

设置swallowOutput似乎没有任何区别.

在相关的情况下,在tomcat下运行的应用程序是solr.

obj*_*cts 67

修复它,结果标准日志记录配置定义了文件记录器和控制台记录器.文件记录器转到每日catalina日志,控制台记录器写入catalina.out.

修复是在conf/logging.properties中更改:

.handlers = 1catalina.org.apache.juli.FileHandler, java.util.logging.ConsoleHandler
Run Code Online (Sandbox Code Playgroud)

.handlers = 1catalina.org.apache.juli.FileHandler
Run Code Online (Sandbox Code Playgroud)

这会阻止任何写入catalina.out的内容

  • 只是想提一下,这并没有阻止在log4j.properties文件中指定类似内容的应用程序:log4j.rootLogger = DEBUG,stdout,logfile那些仍然被转储到stdout并放在catalina.out中.只是要注意的事情...... (10认同)
  • 如果未登录 catalina.out,日志会去哪里?我主要参考 catalina.out 进行调试并需要这些日志。 (2认同)

Ram*_*eus 5

您好,您可能想尝试这个解决方案

http://java.dzone.com/articles/how-rotate-tomcat-catalinaout

它使用 cronjob (logrotate) 来复制、压缩和清理 catalina.out,如果您查看 logrotate,您会发现它有很多附加功能。它不会干扰每日日志,除非您配置它这样做。当我遇到同样的问题时,我发现它很有帮助。

顺便说一句,删除控制台处理程序只会影响 Tomcat 生成的消息。

  • 当我在配置“/var/log/tomcat/catalina.out”后执行“/usr/sbin/logrotate /etc/logrotate.conf”时,它仍然不能解决我旋转“catalina.out”文件的问题 (2认同)