catalina.out用Tomcat 6.0滚动

时间:2009-07-18 05:00:08

标签: tomcat logging 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

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

在tomcat下运行的应用程序是solr,以防相关。

5 个答案:

答案 0 :(得分:67)

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

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

.handlers = 1catalina.org.apache.juli.FileHandler, java.util.logging.ConsoleHandler

.handlers = 1catalina.org.apache.juli.FileHandler

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

答案 1 :(得分:4)

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

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

它使用cronjob(logrotate)来复制,压缩和清理你的catalina.out,如果你看一下logrotate,你会发现它有很多额外的功能。除非您进行配置,否则它不会干扰每日日志。当我遇到同样的问题时,我发现它很有帮助。

BTW删除控制台处理程序只会影响Tomcat生成的消息。

答案 2 :(得分:2)

您可以通过configure: -

旋转您的catalina.out文件

步骤: -

  • 1)转到/etc/logrotate.d并创建文件tomcat

  • 2)粘贴下面的行

  • 按尺寸旋转

/opt/OS/OS2/logs/catalina.out {
 copytruncate
 每天
 旋转30
 压缩
 missingok
 尺寸20M
}

- size - 如果大小超过20MB,则备份catelina.out

OR

  • 按日期轮播

/opt/deadpool/apache-tomcat/logs/catalina.out {

copytruncate

dateext

每日

旋转30

压缩

missingok

}

  • 旋转 - 保存最后30次旋转
  • dateext - 每天备份catelina.out
  • 每日 - 每日轮换
  • 压缩 - 以压缩形式旋转
  • missingok - 如果轮换中缺少某些东西,则不会产生任何影响

3)重启服务器

它为我工作:) 希望这会对某人有所帮助。

谢谢:)

答案 3 :(得分:1)

我在Ubuntu 11.04 SOLR服务器上遇到了同样的问题,catalina.out文件几乎是1GB。之后

更改logging.properties:

  

.handlers = 1catalina.org.apache.juli.FileHandler,java.util.logging.ConsoleHandler

  

.handlers = 1catalina.org.apache.juli.FileHandler

停止记录到catalina.out

您可以在Ubuntu Linux的 / etc / tomcat6 / 文件夹中找到 logging.properties 文件。

答案 4 :(得分:0)

我还注意到我的tomcat日志文件夹(/usr/local/tomcat/logs)非常庞大。要检查日志文件夹的大小,请执行以下du -hs /usr/local/tomcat/logs/。要通过设置每晚清理文件的cron来解决此问题,或者您可以手动运行这些命令。以下是将删除5天之前的文件的shell脚本

#!/bin/sh
find /usr/local/tomcat/logs -name 'catalina.*.log' -mtime +5 -print0 | xargs -0 rm -f
find /usr/local/tomcat/logs -name 'localhost_access_log.*.txt' -mtime +5 -print0 | xargs -0 rm -f