catalina.out 与 Tomcat 6.0 一起滚动
Posted
技术标签:
【中文标题】catalina.out 与 Tomcat 6.0 一起滚动【英文标题】:catalina.out rolling with Tomcat 6.0 【发布时间】:2010-11-11 22:01:19 【问题描述】:我有一个默认的 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,以防万一。
【问题讨论】:
第一次出现“catalina.out”可能是错误的。它是每天轮换的“catalina.log”。 【参考方案1】:修复它,原来标准日志配置定义了一个文件记录器和一个控制台记录器。文件记录器转到 catalina 每日日志,控制台记录器写入 catalina.out。
修复是更改 conf/logging.properties:
.handlers = 1catalina.org.apache.juli.FileHandler, java.util.logging.ConsoleHandler
到
.handlers = 1catalina.org.apache.juli.FileHandler
这会阻止任何东西写入 catalina.out
【讨论】:
只是想提一下,这不会停止在其 log4j.properties 文件中指定类似内容的应用程序: log4j.rootLogger=DEBUG,stdout,logfile 这些仍然被转储到标准输出并放置在 catalina 。出去。只是需要注意... 如果没有登录 catalina.out,日志会去哪里?我主要参考 catalina.out 进行调试并需要这些日志。 @RakeshRakshit 确切的输出文件被指定为 FileHandler 参数的一部分 - 请参阅FileHandler。根据 FileHandler 和 tomcat 的默认值,它很可能最终成为 catalina.YYYY-MM-DD.txt。【参考方案2】:您好,您可能想试试这个解决方案
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
文件的问题
另一件事是这将每天轮换。如果我想在日志文件的大小达到最大分配大小时进行轮换怎么办?【参考方案3】:
您可以通过配置来旋转 catalina.out 文件:-
步骤:-
1) 转到 /etc/logrotate.d 并创建文件 tomcat
2) 粘贴到行下
按大小旋转
/opt/OS/OS2/logs/catalina.out 复制截断 每日 旋转 30 压缩 不见不散 尺寸 20M
-- 大小 - 如果大小大于 20MB,则备份 catelina.out
或
按日期轮换/opt/deadpool/apache-tomcat/logs/catalina.out
复制截断
日期文本
每天
旋转 30
压缩
不见不散
旋转 - 保存最后 30 次旋转 dateext - 每天备份 catelina.out 每天 - 每天轮换 compress - 以压缩形式旋转 missingok - 如果在轮换中缺少某些东西,它不会造成任何影响3) 重启服务器
它对我有用 :) 希望这会对某人有所帮助。
谢谢你:)
【讨论】:
我更喜欢这个答案,因为它在参数中有 CR/LF(否则你可能会在几天内得到一个“错误的旋转计数”),并且可以清楚地粘贴大小和日期的选项。顺便说一句,我不需要第 3 点(CentoOS 7.x),最后你可以通过/usr/sbin/logrotate /etc/logrotate.conf
检查一切是否适合你,注意它会在目录中旋转(需要 root 访问权限)
是第 3 项)不需要重启服务器,详情见unix.stackexchange.com/questions/116136/…。【参考方案4】:
我在 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 文件。
【讨论】:
【参考方案5】:我还注意到我的 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
【讨论】:
以上是关于catalina.out 与 Tomcat 6.0 一起滚动的主要内容,如果未能解决你的问题,请参考以下文章
如何处理Tomcat日志catalina.out日志文件过大的问题