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