我的catalina.out文件有37 GB,这似乎阻止了我的应用程序在linux(Centos)服务器上正常运行,因为该文件占用了我所有的服务器空间。我从没想过日志文件可以变得这么大。停止Tomcat(Tomcat9)并删除catalina.out是否安全(我没有测试服务器可以尝试)?当我再次启动Tomcat时是否创建了一个新的catalina.out文件?
还是做会更好
sudo echo > catalina.out
如此处所述。这个命令到底有什么作用?
无论如何,我需要不时停止 Tomcat 以更新我的应用程序,并且我不需要存储较旧的日志文件。那么,保持 catalina.out 小的最好方法是什么?
即使 Tomcat 正在运行,您也可以安全地截断(即用空字符串替换内容)catalina.out
文件,这可以通过多种方式完成:
cat > catalina.out
# or
truncate catalina.out
删除文件,而Tomcat关闭也可以,但是在正在运行的Tomcat上,这将产生很大的副作用:Tomcat仍将将数据附加到已删除的文件中,并且在Tomcat关闭之前不会释放空间。
为了保持catalina.out
小,您应该:
- 从
logging.properties
中删除ConsoleHandler
(.handlers
和handlers
):记录到ConsoleHandler
的数据也记录到catalina.<date>.log
, - 确保应用程序的日志记录系统不会记录到标准输出/标准错误,而是记录到正确旋转的文件。
如果在停止tomcat
后删除catalina.out
,它将在tomcat
再次启动后创建一个新catalina.out
并且它是完全安全的。如果您在tomcat
运行时删除catalina.out
,它将继续记录到已经删除catalina.out
(文件的引用由tomcat
持有),因此空间不会被释放。因此,您需要重新启动tomcat
服务器以释放空间。不建议这样做。
服务器停止时删除/移动catalina.out
tomcat
完全不会有任何问题。
但是在公共使用tomcat
上运行的关键应用程序中,这将不是一个好的解决方案,因为会有停机时间。
实际上,您可以使用以下命令清除catalina.out
文件的日志,而无需停止tomcat。
sudo cat /dev/null > /opt/tomcat/apache-tomcat-9.0.37/logs/catalina.out
若要保持catalina.out
较小并删除较旧的日志,可以使用以下任一方法:
您可以使用上面的
Linux
命令并将其添加到CronScheduler
根据需要每天/每周/每月或每年运行。在
Linux
中使用logrotate
工具。它是一个日志管理命令行工具 在 Linux 中。这可以在不同条件下轮换日志文件。 特别是,我们可以在固定的持续时间内轮换日志文件,或者如果 文件已增长到一定大小。您可以单击此处了解更多信息 关于这个的信息。