我有一个默认的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,以防相关。
答案 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
}
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