我想知道为什么我在tomcat服务器上的spring项目会得到40 my的catalina.out文件。请提供任何解决方案。catalina.out reach 40 GB
发布于 2017-09-27 18:42:12
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 = ....可能的级别,在频率的递增级别是严重,警告,信息,配置,罚款,更好,最好或全部。我会尝试替换所有,最好的,更好的,好的配置,甚至信息。例如,通过将其设置为INFO,将记录所有严重、警告和INFO消息,但不会记录该列表右侧级别的任何消息。
另一个选项是通过将以下行添加到conf/logging.properties来设置对控制台处理程序的限制
java.util.logging.ConsoleHandler.limit = 1024000以及rotate catalina.out配置自动任务以删除较旧的任务。
发布于 2020-07-21 05:47:05
如果您是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步:在crond.daily中添加每天运行的cron作业或创建自定义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.confhttps://stackoverflow.com/questions/46445058
复制相似问题