Tomcat catalina.out是40GB

时间:2017-09-27 10:05:35

标签: java tomcat

我想知道为什么我的tomcat服务器的spring项目得到了大小为40GB的catalina.out文件。请提供任何解决方案。catalina.out reach 40 GB

2 个答案:

答案 0 :(得分:1)

catalina.out达到如此大的尺寸,因为:

1-可能会有许多日志消息发送到控制台处理程序,并且

2- catalina.out也没有任何轮换(也没有删除旧catalina.out的政策)。

首先,因为可能存在一些重复和catalina.out中的消息,这些消息也可以存储在*日志消息中,所以我检查日志文件的内容(catalina。[DATE])。 log)与catalina.out相同,如果是,那么你可以编辑文件 conf / logging.properties remove console handler

我还会检查日志消息的级别,并在可能的情况下设置更高的级别。在 conf / logging.properties

中查找此行
java.util.logging.ConsoleHandler.level = ....

可能的等级,在频率增加的情况下是严重,警告,信息,配置,精细,有限,最佳或全部。我尝试用CONFIG甚至INFO替换ALL,FINEST,FINER,FINE。例如,通过将其设置为INFO,将记录所有SEVERE,WARNING和INFO消息,但不会记录该列表右侧的任何消息。

另一个选项是通过将此行添加到 conf / logging.properties

来设置控制台处理程序的限制
java.util.logging.ConsoleHandler.limit = 1024000

rotate catalina.out配置自动任务以删除较旧的任务。

答案 1 :(得分:0)

如果您是Linux用户,可以很容易地从系统中处理此问题,则可以使用logrotate配置logrotation,这非常容易

步骤:1(创建Logrotate文件)

root@c2dapp01-usea1e# vim /etc/logrotate.d/tomcat

步骤:为linux日志旋转器添加旋转指令

/opt/tomcat/latest/logs/catalina.out {
    copytruncate
    daily
    rotate 7
    compress
    missingok
    size 100M
}

步骤:3添加cron作业以每天在crond.daily中运行或创建自定义cron(默认情况下,此文件位于该位置,然后仅创建)

root@c2dapp01-usea1e:# vim /etc/cron.daily/logrotate
# Clean non existent log file entries from status file
cd /var/lib/logrotate
test -e status || touch status
head -1 status > status.clean
sed 's/"//g' status | while read logfile date
do
    [ -e "$logfile" ] && echo "\"$logfile\" $date"
done >> status.clean
mv status.clean status

test -x /usr/sbin/logrotate || exit 0
/usr/sbin/logrotate /etc/logrotate.conf

此脚本可以手动运行。

/usr/sbin/logrotate /etc/logrotate.conf