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